HOPKINS: Some refactoring and renaming in ObjectsManager

This commit is contained in:
Strangerke 2013-03-29 08:22:06 +01:00
parent a2c282bc5c
commit e9742e6988
2 changed files with 37 additions and 44 deletions

View File

@ -458,7 +458,7 @@ void ObjectsManager::displaySprite() {
setBobInfo(_sortedDisplay[idx]._index); setBobInfo(_sortedDisplay[idx]._index);
break; break;
case SORT_SPRITE: case SORT_SPRITE:
DEF_SPRITE(_sortedDisplay[idx]._index); showSprite(_sortedDisplay[idx]._index);
break; break;
case SORT_HIDING: case SORT_HIDING:
displayHiding(_sortedDisplay[idx]._index); displayHiding(_sortedDisplay[idx]._index);
@ -475,7 +475,7 @@ void ObjectsManager::displaySprite() {
setBobInfo(_sortedDisplay[idx]._index); setBobInfo(_sortedDisplay[idx]._index);
break; break;
case SORT_SPRITE: case SORT_SPRITE:
DEF_SPRITE(_sortedDisplay[idx]._index); showSprite(_sortedDisplay[idx]._index);
break; break;
case SORT_HIDING: case SORT_HIDING:
displayHiding(_sortedDisplay[idx]._index); displayHiding(_sortedDisplay[idx]._index);
@ -700,7 +700,7 @@ void ObjectsManager::setBobOffset(int idx, int offset) {
_bob[idx]._oldX2 = offset; _bob[idx]._oldX2 = offset;
} }
void ObjectsManager::SCBOB(int idx) { void ObjectsManager::computeHideCounter(int idx) {
HidingItem *hid = &_hidingItem[idx]; HidingItem *hid = &_hidingItem[idx];
if (hid->_useCount == 0) if (hid->_useCount == 0)
return; return;
@ -709,23 +709,23 @@ void ObjectsManager::SCBOB(int idx) {
if ((_bob[i]._bobMode) && (!_bob[i]._disabledAnimationFl) && (!_bob[i].field34) && (_bob[i]._frameIndex != 250)) { if ((_bob[i]._bobMode) && (!_bob[i]._disabledAnimationFl) && (!_bob[i].field34) && (_bob[i]._frameIndex != 250)) {
int oldRight = _bob[i]._oldX + _bob[i]._oldWidth; int oldRight = _bob[i]._oldX + _bob[i]._oldWidth;
int oldBottom = _bob[i]._oldY + _bob[i]._oldHeight; int oldBottom = _bob[i]._oldY + _bob[i]._oldHeight;
int cachedRight = hid->_width + hid->_x; int hiddenRight = hid->_x + hid->_width;
if ((oldBottom > hid->_y) && (oldBottom < hid->_yOffset +hid->_height + hid->_y)) { if ((oldBottom > hid->_y) && (oldBottom < hid->_yOffset + hid->_height + hid->_y)) {
if ((oldRight >= hid->_x && oldRight <= cachedRight) if ((oldRight >= hid->_x && oldRight <= hiddenRight)
// CHECKME: The original was doing the test two times. This looks like an // CHECKME: The original was doing the test two times. This looks like an
// original bug // original bug
// || (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= hid->_x) // || (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= hid->_x)
|| (cachedRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= hid->_x) || (hiddenRight >= _bob[i]._oldWidth && _bob[i]._oldWidth >= hid->_x)
|| (_bob[i]._oldWidth >= hid->_x && oldRight <= cachedRight) || (_bob[i]._oldWidth >= hid->_x && oldRight <= hiddenRight)
|| (_bob[i]._oldWidth <= hid->_x && oldRight >= cachedRight)) || (_bob[i]._oldWidth <= hid->_x && oldRight >= hiddenRight))
++hid->_useCount; ++hid->_useCount;
} }
} }
} }
} }
void ObjectsManager::CALCUL_BOB(int idx) { void ObjectsManager::initBobVariables(int idx) {
_bob[idx]._activeFl = false; _bob[idx]._activeFl = false;
if (_bob[idx]._isSpriteFl) { if (_bob[idx]._isSpriteFl) {
_bob[idx]._flipFl = false; _bob[idx]._flipFl = false;
@ -747,11 +747,9 @@ void ObjectsManager::CALCUL_BOB(int idx) {
int negZoom = 0; int negZoom = 0;
int posZoom = 0; int posZoom = 0;
if (_bob[idx]._zoomFactor < 0) { if (_bob[idx]._zoomFactor < 0)
negZoom = -_bob[idx]._zoomFactor; negZoom = CLIP(-_bob[idx]._zoomFactor, 0, 95);
if (negZoom > 95) else
negZoom = 95;
} else
posZoom = _bob[idx]._zoomFactor; posZoom = _bob[idx]._zoomFactor;
if (posZoom) { if (posZoom) {
@ -796,10 +794,9 @@ void ObjectsManager::CALCUL_BOB(int idx) {
if (posZoom) { if (posZoom) {
width = _vm->_graphicsManager->zoomIn(width, posZoom); width = _vm->_graphicsManager->zoomIn(width, posZoom);
height = _vm->_graphicsManager->zoomIn(height, posZoom); height = _vm->_graphicsManager->zoomIn(height, posZoom);
} } else if (negZoom) {
if (negZoom) {
height = _vm->_graphicsManager->zoomOut(height, negZoom);
width = _vm->_graphicsManager->zoomOut(width, negZoom); width = _vm->_graphicsManager->zoomOut(width, negZoom);
height = _vm->_graphicsManager->zoomOut(height, negZoom);
} }
Liste2[idx]._width = width; Liste2[idx]._width = width;
@ -835,7 +832,7 @@ void ObjectsManager::checkHidingItem() {
} }
} }
SCBOB(hidingItemIdx); computeHideCounter(hidingItemIdx);
if (hid->_useCount != _oldUseCount) { if (hid->_useCount != _oldUseCount) {
int priority = hid->_yOffset + hid->_height + hid->_y; int priority = hid->_yOffset + hid->_height + hid->_y;
if (priority > 440) if (priority > 440)
@ -852,7 +849,7 @@ void ObjectsManager::checkHidingItem() {
} }
} }
void ObjectsManager::DEF_SPRITE(int idx) { void ObjectsManager::showSprite(int idx) {
SpriteItem *spr = &_sprite[idx]; SpriteItem *spr = &_sprite[idx];
if (!spr->_activeFl) if (!spr->_activeFl)
return; return;
@ -878,11 +875,8 @@ void ObjectsManager::DEF_SPRITE(int idx) {
list->_posY = _vm->_graphicsManager->_minY; list->_posY = _vm->_graphicsManager->_minY;
} }
if (list->_width + list->_posX > _vm->_graphicsManager->_maxX) list->_width = MIN(list->_width, _vm->_graphicsManager->_maxX - list->_posX);
list->_width = _vm->_graphicsManager->_maxX - list->_posX; list->_height = MIN(list->_height, _vm->_graphicsManager->_maxY - list->_posY);
if (list->_height + list->_posY > _vm->_graphicsManager->_maxY)
list->_height = _vm->_graphicsManager->_maxY - list->_posY;
if (list->_width <= 0 || list->_height <= 0) if (list->_width <= 0 || list->_height <= 0)
list->_visibleFl = false; list->_visibleFl = false;
@ -1130,7 +1124,7 @@ void ObjectsManager::displayBobAnim() {
for (int i = 1; i <= 35; i++) { for (int i = 1; i <= 35; i++) {
_bob[i]._oldY = 0; _bob[i]._oldY = 0;
if (_bob[i]._bobMode == 10 && !_bob[i]._disabledAnimationFl && _bob[i]._bobMode10) { if (_bob[i]._bobMode == 10 && !_bob[i]._disabledAnimationFl && _bob[i]._bobMode10) {
CALCUL_BOB(i); initBobVariables(i);
int priority = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY; int priority = _bob[i]._oldX2 + _bob[i]._oldHeight + _bob[i]._oldY;
if (priority > 450) if (priority > 450)
@ -2829,7 +2823,7 @@ void ObjectsManager::doActionBack(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,-1,", 8, false); SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,-1,", 8, false);
@ -2838,7 +2832,7 @@ void ObjectsManager::doActionBack(int idx) {
SPACTION1(_gestureBuf, "12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8); SPACTION1(_gestureBuf, "12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,9,10,11,12,13,12,11,12,13,12,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,9,10,11,12,13,12,11,12,13,12,11,12,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
case 5: case 5:
SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 8, false); SPACTION(_gestureBuf, "15,16,17,18,19,20,21,-1,", 8, false);
@ -2870,7 +2864,7 @@ void ObjectsManager::doActionRight(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, false); showActionAnimation(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, false);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, false); SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, false);
@ -2879,7 +2873,7 @@ void ObjectsManager::doActionRight(int idx) {
SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8); SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, false); showActionAnimation(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, false);
break; break;
case 5: case 5:
SPACTION(_gestureBuf, "23,24,25,-1,", 8, false); SPACTION(_gestureBuf, "23,24,25,-1,", 8, false);
@ -2911,7 +2905,7 @@ void ObjectsManager::doActionDiagRight(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, false); SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, false);
@ -2920,7 +2914,7 @@ void ObjectsManager::doActionDiagRight(int idx) {
SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8); SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
case 5: case 5:
SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, false); SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, false);
@ -2952,7 +2946,7 @@ void ObjectsManager::doActionFront(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,9,9,9,9,9,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,9,9,9,9,9,9,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,-1,", 8, false); SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,-1,", 8, false);
@ -2961,7 +2955,7 @@ void ObjectsManager::doActionFront(int idx) {
SPACTION1(_gestureBuf, "14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8); SPACTION1(_gestureBuf, "14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8, false); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,9,10,11,12,13,14,13,12,11,10,9,7,6,5,4,3,2,1,0,-1,", 8, false);
break; break;
} }
} }
@ -2975,7 +2969,7 @@ void ObjectsManager::doActionDiagLeft(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, true); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 8, true);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, true); SPACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,-1,", 8, true);
@ -2984,7 +2978,7 @@ void ObjectsManager::doActionDiagLeft(int idx) {
SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8); SPACTION1(_gestureBuf, "11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, true); showActionAnimation(_gestureBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,11,12,11,12,11,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,", 8, true);
break; break;
case 5: case 5:
SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, true); SPACTION(_gestureBuf, "15,16,17,18,-1,", 8, true);
@ -3016,7 +3010,7 @@ void ObjectsManager::doActionLeft(int idx) {
switch (idx) { switch (idx) {
case 1: case 1:
ACTION(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, true); showActionAnimation(_gestureBuf, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 8, true);
break; break;
case 2: case 2:
SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, true); SPACTION(_gestureBuf, "1,2,3,4,5,6,7,8,-1,", 8, true);
@ -3025,7 +3019,7 @@ void ObjectsManager::doActionLeft(int idx) {
SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8); SPACTION1(_gestureBuf, "9,10,11,12,13,14,15,16,17,18,19,20,-1,", 8);
break; break;
case 4: case 4:
ACTION(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, true); showActionAnimation(_gestureBuf, "1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1,-1,", 8, true);
break; break;
case 5: case 5:
SPACTION(_gestureBuf, "23,24,25,-1,", 8, true); SPACTION(_gestureBuf, "23,24,25,-1,", 8, true);
@ -3509,7 +3503,7 @@ void ObjectsManager::enableVerb(int idx, int a2) {
} }
} }
void ObjectsManager::ACTION(const byte *spriteData, const Common::String &actionStr, int speed, bool flipFl) { void ObjectsManager::showActionAnimation(const byte *spriteData, const Common::String &actionStr, int speed, bool flipFl) {
Common::String tmpStr = ""; Common::String tmpStr = "";
int realSpeed = speed; int realSpeed = speed;
if (_vm->_globals->_speed == 2) if (_vm->_globals->_speed == 2)

View File

@ -188,8 +188,8 @@ private:
void capture_mem_sprite(const byte *objectData, byte *sprite, int objIndex); void capture_mem_sprite(const byte *objectData, byte *sprite, int objIndex);
void setBobInfo(int idx); void setBobInfo(int idx);
void SCBOB(int idx); void computeHideCounter(int idx);
void CALCUL_BOB(int idx); void initBobVariables(int idx);
void checkHidingItem(); void checkHidingItem();
void displayHiding(int idx); void displayHiding(int idx);
@ -197,8 +197,7 @@ private:
void beforeSort(SortMode sortMode, int index, int priority); void beforeSort(SortMode sortMode, int index, int priority);
void displayBobAnim(); void displayBobAnim();
void displayVBob(); void displayVBob();
void DEF_SPRITE(int idx); void showSprite(int idx);
void clearSprite(); void clearSprite();
void setSpriteZoom(int idx, int zoomFactor); void setSpriteZoom(int idx, int zoomFactor);
@ -210,7 +209,7 @@ private:
void handleForest(int screenId, int minX, int maxX, int minY, int maxY, int idx); void handleForest(int screenId, int minX, int maxX, int minY, int maxY, int idx);
void sceneSpecialIni(); void sceneSpecialIni();
void ACTION(const byte *spriteData, const Common::String &actionStr, int speed, bool flipFl); void showActionAnimation(const byte *spriteData, const Common::String &actionStr, int speed, bool flipFl);
public: public:
bool _disableFl; bool _disableFl;
bool _forestFl; bool _forestFl;