void AGOSEngine_Feeble::checkUp(WindowBlock *window) { uint16 j, k; if (((_variableArray[31] - _variableArray[30]) == 40) && (_variableArray[31] > 52)) { k = (((_variableArray[31] / 52) - 2) % 3); j = k * 6; if (!isBoxDead(j + 201)) { uint index = getWindowNum(window); drawIconArray(index, window->iconPtr->itemRef, 0, window->iconPtr->classMask); animate(4, 9, k + 34, 0, 0, 0); } } if ((_variableArray[31] - _variableArray[30]) == 76) { k = ((_variableArray[31] / 52) % 3); j = k * 6; if (isBoxDead(j + 201)) { animate(4, 9, k + 31, 0, 0, 0); undefineBox(j + 201); undefineBox(j + 202); undefineBox(j + 203); undefineBox(j + 204); undefineBox(j + 205); undefineBox(j + 206); } _variableArray[31] -= 52; _iOverflow = 1; } }
void AGOSEngine::defineBox(int id, int x, int y, int width, int height, int flags, int verb, Item *itemPtr) { HitArea *ha; undefineBox(id); ha = findEmptyHitArea(); ha->x = x; ha->y = y; ha->width = width; ha->height = height; ha->flags = flags | kBFBoxInUse; ha->id = ha->priority = id; ha->verb = verb; ha->itemPtr = itemPtr; if (getGameType() == GType_FF && (ha->flags & kBFHyperBox)) { ha->data = _hyperLink; ha->priority = 50; } _needHitAreaRecalc++; }
void AGOSEngine_Feeble::checkDown(WindowBlock *window) { uint16 j, k; if (((_variableArray[31] - _variableArray[30]) == 24) && (_iOverflow == 1)) { uint index = getWindowNum(window); drawIconArray(index, window->iconPtr->itemRef, 0, window->iconPtr->classMask); k = ((_variableArray[31] / 52) % 3); animate(4, 9, k + 25, 0, 0, 0); _variableArray[31] += 52; } if (((_variableArray[31] - _variableArray[30]) == 40) && (_variableArray[30] > 52)) { k = (((_variableArray[31] / 52) + 1) % 3); j = k * 6; if (isBoxDead(j + 201)) { animate(4, 9, k + 28, 0, 0, 0); undefineBox(j + 201); undefineBox(j + 202); undefineBox(j + 203); undefineBox(j + 204); undefineBox(j + 205); undefineBox(j + 206); } } }
void AGOSEngine::o_delBox() { // 108: delete box undefineBox(getVarOrWord()); }