HOPKINS: Some renaming in Globals and ObjectsManager. Remove a couple of useless variables.

This commit is contained in:
Strangerke 2013-02-22 09:10:45 +01:00
parent b0a55e7a4f
commit e4edf54209
7 changed files with 140 additions and 146 deletions

View File

@ -68,8 +68,6 @@ Globals::Globals() {
strcpy((char *)g_PTRNUL, "POINTERNULL");
// Initialize array properties
for (int i = 0; i < 6; ++i)
CACHE_BANQUE[i] = g_PTRNUL;
for (int i = 0; i < 35; ++i)
Common::fill((byte *)&_animBqe[i], (byte *)&_animBqe[i] + sizeof(BqeAnimItem), 0);
for (int i = 0; i < 8; ++i)
@ -85,7 +83,7 @@ Globals::Globals() {
for (int i = 0; i < 300; ++i)
Common::fill((byte *)&ObjetW[i], (byte *)&ObjetW[i] + sizeof(ObjetWItem), 0);
for (int i = 0; i < 25; ++i)
Common::fill((byte *)&Cache[i], (byte *)&Cache[i] + sizeof(CacheItem), 0);
Common::fill((byte *)&_hidingItem[i], (byte *)&_hidingItem[i] + sizeof(HidingItem), 0);
for (int i = 0; i < 500; ++i)
_spriteSize[i] = 0;
@ -143,9 +141,9 @@ Globals::Globals() {
_oceanDirection = DIR_NONE;
// Initialize pointers
for (int i = 0; i < 6; ++i)
_hidingItemData[i] = g_PTRNUL;
BUF_ZONE = NULL;
for (int idx = 0; idx < 6; ++idx)
CACHE_BANQUE[idx] = NULL;
SPRITE_ECRAN = NULL;
_saveData = NULL;
_inventoryObject = NULL;
@ -159,7 +157,7 @@ Globals::Globals() {
_disableInventFl = false;
_freezeCharacterFl = false;
_optionDialogFl = false;
_cacheFl = false;
_hidingActiveFl = false;
_introSpeechOffFl = false;
_baseMapColor = 50;
@ -180,7 +178,7 @@ Globals::Globals() {
Globals::~Globals() {
freeMemory(BUF_ZONE);
for (int idx = 0; idx < 6; ++idx)
CACHE_BANQUE[idx] = freeMemory(CACHE_BANQUE[idx]);
_hidingItemData[idx] = freeMemory(_hidingItemData[idx]);
freeMemory(SPRITE_ECRAN);
freeMemory((byte *)_saveData);
freeMemory(_inventoryObject);
@ -188,7 +186,7 @@ Globals::~Globals() {
freeMemory(ADR_FICHIER_OBJ);
freeMemory(PERSO);
CLEAR_VBOB();
clearVBob();
free(g_PTRNUL);
}
@ -235,15 +233,15 @@ void Globals::setConfig() {
void Globals::clearAll() {
for (int idx = 0; idx < 6; ++idx)
CACHE_BANQUE[idx] = g_PTRNUL;
_hidingItemData[idx] = g_PTRNUL;
INIT_ANIM();
initAnimBqe();
_boxWidth = 0;
_vm->_fontManager.clearAll();
INIT_VBOB();
initVBob();
ADR_FICHIER_OBJ = g_PTRNUL;
NUM_FICHIER_OBJ = 0;
_vm->_eventsManager._objectBuf = g_PTRNUL;
@ -283,7 +281,7 @@ void Globals::loadCharacterData() {
_oldDirection = DIR_NONE;
}
void Globals::INIT_ANIM() {
void Globals::initAnimBqe() {
for (int idx = 0; idx < 35; ++idx) {
_animBqe[idx]._data = g_PTRNUL;
_animBqe[idx]._enabledFl = false;
@ -297,7 +295,7 @@ void Globals::INIT_ANIM() {
}
}
void Globals::INIT_VBOB() {
void Globals::initVBob() {
for (int idx = 0; idx < 30; ++idx) {
VBob[idx].field4 = 0;
VBob[idx]._xp = 0;
@ -309,7 +307,7 @@ void Globals::INIT_VBOB() {
}
}
void Globals::CLEAR_VBOB() {
void Globals::clearVBob() {
for (int idx = 0; idx < 30; ++idx) {
VBob[idx].field4 = 0;
VBob[idx]._xp = 0;
@ -353,34 +351,34 @@ byte *Globals::freeMemory(byte *p) {
return g_PTRNUL;
}
// Reset Cache
void Globals::resetCache() {
// Reset Hiding Items
void Globals::resetHidingItems() {
for (int idx = 1; idx <= 5; ++idx) {
CACHE_BANQUE[idx] = freeMemory(CACHE_BANQUE[idx]);
_hidingItemData[idx] = freeMemory(_hidingItemData[idx]);
}
for (int idx = 0; idx <= 20; ++idx) {
Cache[idx]._spriteData = g_PTRNUL;
Cache[idx]._x = 0;
Cache[idx]._y = 0;
Cache[idx]._spriteIndex = 0;
Cache[idx]._useCount = 0;
Cache[idx]._width = 0;
Cache[idx]._height = 0;
Cache[idx].field10 = false;
Cache[idx].field14 = 0;
_hidingItem[idx]._spriteData = g_PTRNUL;
_hidingItem[idx]._x = 0;
_hidingItem[idx]._y = 0;
_hidingItem[idx]._spriteIndex = 0;
_hidingItem[idx]._useCount = 0;
_hidingItem[idx]._width = 0;
_hidingItem[idx]._height = 0;
_hidingItem[idx].field10 = false;
_hidingItem[idx].field14 = 0;
}
_cacheFl = false;
_hidingActiveFl = false;
}
void Globals::CACHE_ON() {
_cacheFl = true;
void Globals::enableHiding() {
_hidingActiveFl = true;
}
void Globals::CACHE_OFF() {
_cacheFl = false;
void Globals::disableHiding() {
_hidingActiveFl = false;
}
void Globals::B_CACHE_OFF(int idx) {
@ -388,17 +386,17 @@ void Globals::B_CACHE_OFF(int idx) {
_vm->_objectsManager._bob[idx].field34 = true;
}
void Globals::CACHE_SUB(int idx) {
Cache[idx]._useCount = 0;
void Globals::resetHidingUseCount(int idx) {
_hidingItem[idx]._useCount = 0;
}
void Globals::CACHE_ADD(int idx) {
Cache[idx]._useCount = 1;
void Globals::setHidingUseCount(int idx) {
_hidingItem[idx]._useCount = 1;
}
// Load Cache
void Globals::loadCache(const Common::String &file) {
resetCache();
// Load Hiding Items
void Globals::loadHidingItems(const Common::String &file) {
resetHidingItems();
byte *ptr = _vm->_fileManager.loadFile(file);
Common::String filename = Common::String((const char *)ptr);
@ -407,27 +405,27 @@ void Globals::loadCache(const Common::String &file) {
return;
byte *spriteData = _vm->_fileManager.loadFile(filename);
CACHE_BANQUE[1] = spriteData;
_hidingItemData[1] = spriteData;
int curBufIdx = 60;
for (int i = 0; i <= 21; i++) {
Cache[i]._spriteIndex = READ_LE_INT16((uint16 *)ptr + curBufIdx);
Cache[i]._x = READ_LE_INT16((uint16 *)ptr + curBufIdx + 1);
Cache[i]._y = READ_LE_INT16((uint16 *)ptr + curBufIdx + 2);
Cache[i].field14 = READ_LE_INT16((uint16 *)ptr + curBufIdx + 4);
_hidingItem[i]._spriteIndex = READ_LE_INT16((uint16 *)ptr + curBufIdx);
_hidingItem[i]._x = READ_LE_INT16((uint16 *)ptr + curBufIdx + 1);
_hidingItem[i]._y = READ_LE_INT16((uint16 *)ptr + curBufIdx + 2);
_hidingItem[i].field14 = READ_LE_INT16((uint16 *)ptr + curBufIdx + 4);
if (spriteData == g_PTRNUL) {
Cache[i]._useCount = 0;
_hidingItem[i]._useCount = 0;
} else {
Cache[i]._spriteData = spriteData;
Cache[i]._width = _vm->_objectsManager.getWidth(spriteData, Cache[i]._spriteIndex);
Cache[i]._height = _vm->_objectsManager.getHeight(spriteData, Cache[i]._spriteIndex);
Cache[i]._useCount = 1;
_hidingItem[i]._spriteData = spriteData;
_hidingItem[i]._width = _vm->_objectsManager.getWidth(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._height = _vm->_objectsManager.getHeight(spriteData, _hidingItem[i]._spriteIndex);
_hidingItem[i]._useCount = 1;
}
if ( !Cache[i]._x && !Cache[i]._y && !Cache[i]._spriteIndex)
Cache[i]._useCount = 0;
if ( !_hidingItem[i]._x && !_hidingItem[i]._y && !_hidingItem[i]._spriteIndex)
_hidingItem[i]._useCount = 0;
curBufIdx += 5;
}
CACHE_ON();
enableHiding();
freeMemory(ptr);
}

View File

@ -94,7 +94,7 @@ struct SortItem {
int _priority;
};
struct CacheItem {
struct HidingItem {
int _x;
int _spriteIndex;
int _y;
@ -239,8 +239,8 @@ private:
byte *_inventoryObject;
void INIT_ANIM();
void INIT_VBOB();
void initAnimBqe();
void initVBob();
public:
bool _disableInventFl;
@ -248,7 +248,7 @@ public:
bool _linuxEndDemoFl;
bool _censorshipFl;
bool _introSpeechOffFl;
bool _cacheFl;
bool _hidingActiveFl;
bool _forceHideText;
int _exitId;
Directions _oceanDirection;
@ -308,10 +308,12 @@ public:
bool _actionMoveTo;
bool _freezeCharacterFl;
bool _checkDistanceFl;
byte *_hidingItemData[6];
HidingItem _hidingItem[25];
BqeAnimItem _animBqe[35];
int iRegul;
byte *BUF_ZONE;
BqeAnimItem _animBqe[35];
byte *SPRITE_ECRAN;
byte *PERSO;
ObjetWItem ObjetW[300];
@ -320,8 +322,6 @@ public:
ListeItem Liste[6];
ListeItem Liste2[35];
BankItem Bank[8];
byte *CACHE_BANQUE[6];
CacheItem Cache[25];
VBobItem VBob[30];
int Compteur;
int compteur_71;
@ -337,15 +337,15 @@ public:
void loadObjects();
void clearAll();
void loadCharacterData();
void resetCache();
void loadCache(const Common::String &file);
void resetHidingItems();
void loadHidingItems(const Common::String &file);
void enableHiding();
void disableHiding();
void resetHidingUseCount(int idx);
void setHidingUseCount(int idx);
void CLEAR_VBOB();
void CACHE_ON();
void CACHE_OFF();
void clearVBob();
void B_CACHE_OFF(int idx);
void CACHE_SUB(int idx);
void CACHE_ADD(int idx);
};
// Global null pointer

View File

@ -2028,7 +2028,7 @@ void HopkinsEngine::BASED() {
_eventsManager.VBL();
_graphicsManager.fadeInLong();
_globals.CACHE_ON();
_globals.enableHiding();
do
_eventsManager.VBL();
@ -2036,7 +2036,7 @@ void HopkinsEngine::BASED() {
_graphicsManager.fadeOutLong();
_graphicsManager.endDisplayBob();
_globals.resetCache();
_globals.resetHidingItems();
_globals._disableInventFl = false;
_globals._exitId = 93;
_globals.iRegul = 0;

View File

@ -346,7 +346,7 @@ void ObjectsManager::displaySprite() {
}
}
if (_vm->_globals._cacheFl)
if (_vm->_globals._hidingActiveFl)
checkCache();
}
@ -510,7 +510,6 @@ void ObjectsManager::resetBob(int idx) {
bob.field1E = 0;
bob.field20 = 0;
bob.field22 = 0;
bob._offsetY = 0;
bob.field34 = false;
bob._zoomFactor = 0;
bob._flipFl = false;
@ -591,7 +590,7 @@ void ObjectsManager::displayBob(int idx) {
int16 v9 = READ_LE_INT16(data + 2);
int16 v8 = READ_LE_INT16(data + 4);
int16 offsetY = READ_LE_INT16(data + 6);
// data[6] isn't used, read skipped
int16 v6 = READ_LE_INT16(data + 8);
if (!v9)
@ -614,7 +613,6 @@ void ObjectsManager::displayBob(int idx) {
_bob[idx].field1E = v9;
_bob[idx].field20 = v6;
_bob[idx].field22 = v8;
_bob[idx]._offsetY = offsetY;
}
void ObjectsManager::hideBob(int idx) {
@ -627,22 +625,22 @@ void ObjectsManager::BOB_OFFSET(int idx, int offset) {
}
void ObjectsManager::SCBOB(int idx) {
if (_vm->_globals.Cache[idx]._useCount == 0)
if (_vm->_globals._hidingItem[idx]._useCount == 0)
return;
for (int i = 0; i <= 20; i++) {
if ((_bob[i].field0) && (!_bob[i]._disabledAnimationFl) && (!_bob[i].field34) && (_bob[i]._frameIndex != 250)) {
int oldRight = _bob[i]._oldX + _bob[i]._oldWidth;
int oldBottom = _bob[i]._oldY + _bob[i]._oldHeight;
int cachedRight = _vm->_globals.Cache[idx]._width + _vm->_globals.Cache[idx]._x;
int cachedRight = _vm->_globals._hidingItem[idx]._width + _vm->_globals._hidingItem[idx]._x;
if ((oldBottom > _vm->_globals.Cache[idx]._y) && (oldBottom < _vm->_globals.Cache[idx].field14 +_vm->_globals.Cache[idx]._height + _vm->_globals.Cache[idx]._y)) {
if ((oldRight >= _vm->_globals.Cache[idx]._x && oldRight <= cachedRight)
|| (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= _vm->_globals.Cache[idx]._x)
|| (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= _vm->_globals.Cache[idx]._x)
|| (_bob[i]._oldWidth >= _vm->_globals.Cache[idx]._x && oldRight <= cachedRight)
|| (_bob[i]._oldWidth <= _vm->_globals.Cache[idx]._x && oldRight >= cachedRight))
++_vm->_globals.Cache[idx]._useCount;
if ((oldBottom > _vm->_globals._hidingItem[idx]._y) && (oldBottom < _vm->_globals._hidingItem[idx].field14 +_vm->_globals._hidingItem[idx]._height + _vm->_globals._hidingItem[idx]._y)) {
if ((oldRight >= _vm->_globals._hidingItem[idx]._x && oldRight <= cachedRight)
|| (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= _vm->_globals._hidingItem[idx]._x)
|| (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= _vm->_globals._hidingItem[idx]._x)
|| (_bob[i]._oldWidth >= _vm->_globals._hidingItem[idx]._x && oldRight <= cachedRight)
|| (_bob[i]._oldWidth <= _vm->_globals._hidingItem[idx]._x && oldRight >= cachedRight))
++_vm->_globals._hidingItem[idx]._useCount;
}
}
}
@ -733,41 +731,41 @@ void ObjectsManager::CALCUL_BOB(int idx) {
void ObjectsManager::checkCache() {
for (int cacheIdx = 0; cacheIdx <= 19; cacheIdx++) {
if (_vm->_globals.Cache[cacheIdx]._useCount == 0)
if (_vm->_globals._hidingItem[cacheIdx]._useCount == 0)
continue;
int _oldUseCount = _vm->_globals.Cache[cacheIdx]._useCount;
int _oldUseCount = _vm->_globals._hidingItem[cacheIdx]._useCount;
for (int spriteIdx = 0; spriteIdx <= 4; spriteIdx++) {
if (_sprite[spriteIdx]._animationType == 1 && _sprite[spriteIdx]._spriteIndex != 250) {
int right = _sprite[spriteIdx]._width + _sprite[spriteIdx]._destX;
int bottom = _sprite[spriteIdx]._height + _sprite[spriteIdx]._destY;
int cachedRight = _vm->_globals.Cache[cacheIdx]._width + _vm->_globals.Cache[cacheIdx]._x;
int cachedRight = _vm->_globals._hidingItem[cacheIdx]._width + _vm->_globals._hidingItem[cacheIdx]._x;
if (bottom > _vm->_globals.Cache[cacheIdx]._y && bottom < (_vm->_globals.Cache[cacheIdx].field14 + _vm->_globals.Cache[cacheIdx]._height + _vm->_globals.Cache[cacheIdx]._y)) {
if ((right >= _vm->_globals.Cache[cacheIdx]._x && right <= cachedRight)
|| (cachedRight >= _sprite[spriteIdx]._destX && _vm->_globals.Cache[cacheIdx]._x <= _sprite[spriteIdx]._destX)
|| (cachedRight >= _sprite[spriteIdx]._destX && _vm->_globals.Cache[cacheIdx]._x <= _sprite[spriteIdx]._destX)
|| (_vm->_globals.Cache[cacheIdx]._x <= _sprite[spriteIdx]._destX && right <= cachedRight)
|| (_vm->_globals.Cache[cacheIdx]._x >= _sprite[spriteIdx]._destX && right >= cachedRight))
++_vm->_globals.Cache[cacheIdx]._useCount;
if (bottom > _vm->_globals._hidingItem[cacheIdx]._y && bottom < (_vm->_globals._hidingItem[cacheIdx].field14 + _vm->_globals._hidingItem[cacheIdx]._height + _vm->_globals._hidingItem[cacheIdx]._y)) {
if ((right >= _vm->_globals._hidingItem[cacheIdx]._x && right <= cachedRight)
|| (cachedRight >= _sprite[spriteIdx]._destX && _vm->_globals._hidingItem[cacheIdx]._x <= _sprite[spriteIdx]._destX)
|| (cachedRight >= _sprite[spriteIdx]._destX && _vm->_globals._hidingItem[cacheIdx]._x <= _sprite[spriteIdx]._destX)
|| (_vm->_globals._hidingItem[cacheIdx]._x <= _sprite[spriteIdx]._destX && right <= cachedRight)
|| (_vm->_globals._hidingItem[cacheIdx]._x >= _sprite[spriteIdx]._destX && right >= cachedRight))
++_vm->_globals._hidingItem[cacheIdx]._useCount;
}
}
}
SCBOB(cacheIdx);
if (_vm->_globals.Cache[cacheIdx]._useCount == _oldUseCount) {
if (_vm->_globals.Cache[cacheIdx].field10) {
_vm->_globals.Cache[cacheIdx].field10 = false;
_vm->_globals.Cache[cacheIdx]._useCount = 1;
if (_vm->_globals._hidingItem[cacheIdx]._useCount == _oldUseCount) {
if (_vm->_globals._hidingItem[cacheIdx].field10) {
_vm->_globals._hidingItem[cacheIdx].field10 = false;
_vm->_globals._hidingItem[cacheIdx]._useCount = 1;
}
} else {
int priority = _vm->_globals.Cache[cacheIdx].field14 + _vm->_globals.Cache[cacheIdx]._height + _vm->_globals.Cache[cacheIdx]._y;
int priority = _vm->_globals._hidingItem[cacheIdx].field14 + _vm->_globals._hidingItem[cacheIdx]._height + _vm->_globals._hidingItem[cacheIdx]._y;
if (priority > 440)
priority = 500;
beforeSort(SORT_CACHE, cacheIdx, priority);
_vm->_globals.Cache[cacheIdx]._useCount = 1;
_vm->_globals.Cache[cacheIdx].field10 = true;
_vm->_globals._hidingItem[cacheIdx]._useCount = 1;
_vm->_globals._hidingItem[cacheIdx].field10 = true;
}
}
}
@ -811,12 +809,12 @@ void ObjectsManager::DEF_SPRITE(int idx) {
}
void ObjectsManager::displayCache(int idx) {
_vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_globals.CACHE_BANQUE[1],
_vm->_globals.Cache[idx]._x + 300, _vm->_globals.Cache[idx]._y + 300,
_vm->_globals.Cache[idx]._spriteIndex);
_vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_globals._hidingItemData[1],
_vm->_globals._hidingItem[idx]._x + 300, _vm->_globals._hidingItem[idx]._y + 300,
_vm->_globals._hidingItem[idx]._spriteIndex);
_vm->_graphicsManager.addVesaSegment(_vm->_globals.Cache[idx]._x, _vm->_globals.Cache[idx]._y,
_vm->_globals.Cache[idx]._x + _vm->_globals.Cache[idx]._width, _vm->_globals.Cache[idx]._y + _vm->_globals.Cache[idx]._height);
_vm->_graphicsManager.addVesaSegment(_vm->_globals._hidingItem[idx]._x, _vm->_globals._hidingItem[idx]._y,
_vm->_globals._hidingItem[idx]._x + _vm->_globals._hidingItem[idx]._width, _vm->_globals._hidingItem[idx]._y + _vm->_globals._hidingItem[idx]._height);
}
// Compute Sprite
@ -1749,7 +1747,7 @@ void ObjectsManager::handleCityMap() {
_vm->_globals.iRegul = 1;
_vm->_graphicsManager.loadImage("PLAN");
_vm->_linesManager.loadLines("PLAN.OB2");
_vm->_globals.loadCache("PLAN.CA2");
_vm->_globals.loadHidingItems("PLAN.CA2");
loadZone("PLAN.ZO2");
_spritePtr = _vm->_fileManager.loadFile("VOITURE.SPR");
_vm->_animationManager.loadAnim("PLAN");
@ -1759,7 +1757,7 @@ void ObjectsManager::handleCityMap() {
_vm->_globals.B_CACHE_OFF(i);
_vm->_globals.B_CACHE_OFF(19);
_vm->_globals.B_CACHE_OFF(20);
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
if (!_mapCarPosX && !_mapCarPosY) {
_mapCarPosX = 900;
@ -2066,11 +2064,11 @@ void ObjectsManager::clearScreen() {
_vm->_graphicsManager.endDisplayBob();
_vm->_fontManager.hideText(5);
_vm->_fontManager.hideText(9);
_vm->_globals.CLEAR_VBOB();
_vm->_globals.clearVBob();
_vm->_animationManager.clearAnim();
_vm->_linesManager.clearAllZones();
_vm->_linesManager.resetLines();
_vm->_globals.resetCache();
_vm->_globals.resetHidingItems();
for (int i = 0; i <= 48; i++) {
_vm->_linesManager.BOBZONE[i] = 0;
@ -3074,42 +3072,42 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
for (int idx = 0; idx < 500; ++idx)
_vm->_globals._spriteSize[idx] = READ_LE_INT16((uint16 *)ptr + idx);
_vm->_globals.resetCache();
_vm->_globals.resetHidingItems();
Common::String filename2 = Common::String((const char *)ptr + 1000);
if (!filename2.empty()) {
_vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.searchCat(filename2, 8);
_vm->_globals._hidingItemData[1] = _vm->_fileManager.searchCat(filename2, 8);
if (_vm->_globals.CACHE_BANQUE[1] || _vm->_globals.CACHE_BANQUE[1] == g_PTRNUL) {
_vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.loadFile(filename2);
if (_vm->_globals._hidingItemData[1] || _vm->_globals._hidingItemData[1] == g_PTRNUL) {
_vm->_globals._hidingItemData[1] = _vm->_fileManager.loadFile(filename2);
} else {
_vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.loadFile("RES_SLI.RES");
_vm->_globals._hidingItemData[1] = _vm->_fileManager.loadFile("RES_SLI.RES");
}
int curDataCacheId = 60;
byte *curDataPtr = ptr + 1000;
for (int cacheIdx = 0; cacheIdx <= 21; cacheIdx++) {
int curSpriteId = READ_LE_INT16(curDataPtr + 2 * curDataCacheId);
_vm->_globals.Cache[cacheIdx]._spriteIndex = curSpriteId;
_vm->_globals.Cache[cacheIdx]._x = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 2);
_vm->_globals.Cache[cacheIdx]._y = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 4);
_vm->_globals.Cache[cacheIdx].field14 = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 8);
_vm->_globals._hidingItem[cacheIdx]._spriteIndex = curSpriteId;
_vm->_globals._hidingItem[cacheIdx]._x = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 2);
_vm->_globals._hidingItem[cacheIdx]._y = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 4);
_vm->_globals._hidingItem[cacheIdx].field14 = READ_LE_INT16(curDataPtr + 2 * curDataCacheId + 8);
if (!_vm->_globals.CACHE_BANQUE[1]) {
_vm->_globals.Cache[cacheIdx]._useCount = 0;
if (!_vm->_globals._hidingItemData[1]) {
_vm->_globals._hidingItem[cacheIdx]._useCount = 0;
} else {
_vm->_globals.Cache[cacheIdx]._spriteData = _vm->_globals.CACHE_BANQUE[1];
_vm->_globals.Cache[cacheIdx]._width = getWidth(_vm->_globals.CACHE_BANQUE[1], curSpriteId);
_vm->_globals.Cache[cacheIdx]._height = getHeight(_vm->_globals.CACHE_BANQUE[1], curSpriteId);
_vm->_globals.Cache[cacheIdx]._useCount = 1;
_vm->_globals._hidingItem[cacheIdx]._spriteData = _vm->_globals._hidingItemData[1];
_vm->_globals._hidingItem[cacheIdx]._width = getWidth(_vm->_globals._hidingItemData[1], curSpriteId);
_vm->_globals._hidingItem[cacheIdx]._height = getHeight(_vm->_globals._hidingItemData[1], curSpriteId);
_vm->_globals._hidingItem[cacheIdx]._useCount = 1;
}
if (!_vm->_globals.Cache[cacheIdx]._x && !_vm->_globals.Cache[cacheIdx]._y
&& !_vm->_globals.Cache[cacheIdx]._spriteIndex)
_vm->_globals.Cache[cacheIdx]._useCount = 0;
if (!_vm->_globals._hidingItem[cacheIdx]._x && !_vm->_globals._hidingItem[cacheIdx]._y
&& !_vm->_globals._hidingItem[cacheIdx]._spriteIndex)
_vm->_globals._hidingItem[cacheIdx]._useCount = 0;
curDataCacheId += 5;
}
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
}
}
@ -3298,8 +3296,8 @@ void ObjectsManager::SPECIAL_INI() {
case 73:
if (!_vm->_globals._saveData->_data[svField318]) {
_vm->_globals.CACHE_SUB(0);
_vm->_globals.CACHE_SUB(1);
_vm->_globals.resetHidingUseCount(0);
_vm->_globals.resetHidingUseCount(1);
}
break;
@ -3834,7 +3832,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_graphicsManager._scrollPosX = (int16)getSpriteX(0) - 320;
computeAndSetSpriteSize();
animateSprite(0);
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
_vm->_linesManager._route = (RouteItem *)g_PTRNUL;
computeAndSetSpriteSize();
SPECIAL_INI();

View File

@ -66,7 +66,6 @@ struct BobItem {
int field1E;
int field20;
int field22;
int _offsetY; // Unused variable?
bool field34; // Set to true in B_CACHE_OFF()
int _zoomFactor;
bool _flipFl;

View File

@ -539,7 +539,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_eventsManager._mouseButton = _vm->_eventsManager._curMouseButton;
_vm->_globals._disableInventFl = true;
_vm->_graphicsManager.fadeOutLong();
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_objectsManager.removeSprite(0);
_vm->_fontManager.hideText(5);
_vm->_fontManager.hideText(9);
@ -826,7 +826,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
break;
case 49: {
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_objectsManager.removeSprite(0);
_vm->_objectsManager.OPTI_BOBON(9, 10, -1, 0, 0, 0);
int v19 = 12;
@ -861,7 +861,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_objectsManager.animateSprite(0);
_vm->_objectsManager.stopBobAnimation(9);
}
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
break;
}
@ -872,7 +872,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
case 51: {
_vm->_graphicsManager.fadeOutLong();
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_objectsManager.removeSprite(0);
_vm->_fontManager.hideText(5);
_vm->_fontManager.hideText(9);
@ -1889,10 +1889,10 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_objectsManager.OBSSEUL = true;
_vm->_objectsManager.loadLinkFile("IM73a");
_vm->_objectsManager.OBSSEUL = false;
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
_vm->_animationManager.NO_SEQ = false;
_vm->_globals.CACHE_ADD(0);
_vm->_globals.CACHE_ADD(1);
_vm->_globals.setHidingUseCount(0);
_vm->_globals.setHidingUseCount(1);
_vm->_graphicsManager.SETCOLOR4(252, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR4(253, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100);
@ -1901,7 +1901,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
case 211:
_vm->_objectsManager.removeSprite(0);
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_animationManager.NO_SEQ = true;
_vm->_soundManager._specialSoundNum = 211;
_vm->_animationManager.playSequence("SECRET2.SEQ", 1, 12, 100);
@ -1946,7 +1946,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_objectsManager.OBSSEUL = true;
_vm->_objectsManager.loadLinkFile("IM93a");
_vm->_objectsManager.OBSSEUL = false;
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
_vm->_globals._checkDistanceFl = true;
_vm->_objectsManager._oldCharacterPosX = _vm->_objectsManager.getSpriteX(0);
_vm->_globals._oldDirection = DIR_NONE;
@ -1983,12 +1983,12 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_objectsManager.OBSSEUL = true;
_vm->_objectsManager.loadLinkFile("IM93c");
_vm->_objectsManager.OBSSEUL = false;
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
break;
}
case 231:
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_objectsManager.removeSprite(0);
_vm->_objectsManager.setBobAnimation(12);
do {
@ -2008,11 +2008,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
} while (_vm->_objectsManager.getBobAnimDataIdx(12) != 12);
_vm->_objectsManager.animateSprite(0);
_vm->_objectsManager.stopBobAnimation(12);
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
break;
case 233: {
_vm->_globals.CACHE_OFF();
_vm->_globals.disableHiding();
_vm->_objectsManager.removeSprite(0);
_vm->_objectsManager.setBobAnimation(11);
int v46 = 0;
@ -2025,7 +2025,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
v46 = 1;
} while (_vm->_objectsManager.getBobAnimDataIdx(11) != 13);
_vm->_objectsManager.stopBobAnimation(11);
_vm->_globals.CACHE_ON();
_vm->_globals.enableHiding();
_vm->_objectsManager.setBobAnimation(13);
do {
if (_vm->shouldQuit())

View File

@ -619,7 +619,6 @@ void TalkManager::BOB_VISU_PARLE(int idx) {
_vm->_objectsManager._bob[idx].field1E = v4;
_vm->_objectsManager._bob[idx].field20 = -1;
_vm->_objectsManager._bob[idx].field22 = 0;
_vm->_objectsManager._bob[idx]._offsetY = 0;
}
}
}
@ -971,7 +970,7 @@ void TalkManager::animateObject(const Common::String &a2) {
_vm->_graphicsManager._scrollStatus = 1;
_vm->_linesManager.clearAllZones();
_vm->_linesManager.resetLines();
_vm->_globals.resetCache();
_vm->_globals.resetHidingItems();
for (int i = 0; i <= 44; i++)
_vm->_linesManager.BOBZONE[i] = 0;
@ -1050,7 +1049,7 @@ void TalkManager::animateObject(const Common::String &a2) {
_vm->_graphicsManager.NB_SCREEN(false);
_vm->_linesManager.clearAllZones();
_vm->_linesManager.resetLines();
_vm->_globals.resetCache();
_vm->_globals.resetHidingItems();
for (int i = 0; i <= 44; i++)
_vm->_linesManager.BOBZONE[i] = 0;