diff options
Diffstat (limited to 'engines/kyra/gui_v3.cpp')
-rw-r--r-- | engines/kyra/gui_v3.cpp | 366 |
1 files changed, 0 insertions, 366 deletions
diff --git a/engines/kyra/gui_v3.cpp b/engines/kyra/gui_v3.cpp deleted file mode 100644 index c797ca0812..0000000000 --- a/engines/kyra/gui_v3.cpp +++ /dev/null @@ -1,366 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include "kyra/kyra_v3.h" -#include "kyra/text_v3.h" -#include "kyra/wsamovie.h" - -namespace Kyra { - -void KyraEngine_v3::showMessage(const char *string, uint8 c0, uint8 c1) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::showMessage('%s', %d, %d)", string, c0, c1); - _shownMessage = string; - _screen->hideMouse(); - - restoreCommandLine(); - _restoreCommandLine = false; - - if (string) { - int x = _text->getCenterStringX(string, 0, 320); - int pageBackUp = _screen->_curPage; - _screen->_curPage = 0; - _text->printText(string, x, _commandLineY, c0, c1, 0); - _screen->_curPage = pageBackUp; - _screen->updateScreen(); - setCommandLineRestoreTimer(7); - } - - _screen->showMouse(); -} - -void KyraEngine_v3::showMessageFromCCode(int string, uint8 c0, int) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::showMessageFromCCode(%d, %d, -)", string, c0); - showMessage((const char*)getTableEntry(_cCodeFile, string), c0, 0xF0); -} - -void KyraEngine_v3::updateItemCommand(int item, int str, uint8 c0) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::updateItemCommand(%d, %d, %d)", item, str, c0); - char buffer[100]; - char *src = (char*)getTableEntry(_itemFile, item); - - while (*src != ' ') - ++src; - ++src; - - *src = toupper(*src); - - strcpy(buffer, src); - strcat(buffer, " "); - strcat(buffer, (const char*)getTableEntry(_cCodeFile, str)); - - showMessage(buffer, c0, 0xF0); -} - -void KyraEngine_v3::updateCommandLine() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::updateCommandLine()"); - if (_restoreCommandLine) { - restoreCommandLine(); - _restoreCommandLine = false; - } -} - -void KyraEngine_v3::restoreCommandLine() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::restoreCommandLine()"); - int y = _inventoryState ? 144 : 188; - _screen->copyBlockToPage(0, 0, y, 320, 12, _interfaceCommandLine); -} - -void KyraEngine_v3::updateCLState() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::updateCLState()"); - if (_inventoryState) - _commandLineY = 145; - else - _commandLineY = 189; -} - -void KyraEngine_v3::showInventory() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::showInventory()"); - if (!_screen->isMouseVisible()) - return; - if (queryGameFlag(3)) - return; - - _screen->copyBlockToPage(3, 0, 0, 320, 56, _interface); - drawMalcolmsMoodText(); - - _inventoryState = true; - updateCLState(); - - redrawInventory(30); - drawMalcolmsMoodPointer(-1, 30); - //XXX - - if (queryGameFlag(0x97)) - drawJestersStaff(1, 30); - - _screen->hideMouse(); - - if (_itemInHand < 0) { - _handItemSet = -1; - _screen->setMouseCursor(0, 0, getShapePtr(0)); - } - - _screen->copyRegion(0, 188, 0, 0, 320, 12, 0, 2, Screen::CR_NO_P_CHECK); - - if (_inventoryScrollSpeed == -1) { - uint32 endTime = _system->getMillis() + _tickLength * 15; - int times = 0; - while (_system->getMillis() < endTime) { - _screen->copyRegion(0, 188, 0, 0, 320, 12, 0, 2, Screen::CR_NO_P_CHECK); - _screen->copyRegion(0, 188, 0, 0, 320, 12, 0, 2, Screen::CR_NO_P_CHECK); - ++times; - } - - times = MAX(times, 1); - - int speed = 60 / times; - if (speed <= 1) - _inventoryScrollSpeed = 1; - else if (speed >= 8) - _inventoryScrollSpeed = 8; - else - _inventoryScrollSpeed = speed; - } - - int height = 12; - int y = 188; - int times = 0; - uint32 waitTill = _system->getMillis() + _tickLength; - - while (y > 144) { - _screen->copyRegion(0, 0, 0, y, 320, height, 2, 0, Screen::CR_NO_P_CHECK); - _screen->updateScreen(); - - ++times; - if (_inventoryScrollSpeed == 1 && times == 3) { - while (waitTill > _system->getMillis()) - _system->delayMillis(10); - times = 0; - waitTill = _system->getMillis() + _tickLength; - } - - height += _inventoryScrollSpeed; - y -= _inventoryScrollSpeed; - } - - _screen->copyRegion(0, 0, 0, 144, 320, 56, 2, 0, Screen::CR_NO_P_CHECK); - _screen->updateScreen(); - - //initInventoryButtonList(0); - - restorePage3(); - _screen->showMouse(); -} - -void KyraEngine_v3::hideInventory() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::hideInventory()"); - if (queryGameFlag(3)) - return; - - _inventoryState = false; - updateCLState(); - //initInventoryButtonList(1); - - _screen->copyBlockToPage(3, 0, 0, 320, 56, _interface); - _screen->hideMouse(); - - restorePage3(); - flagAnimObjsForRefresh(); - drawAnimObjects(); - _screen->copyRegion(0, 144, 0, 0, 320, 56, 0, 2, Screen::CR_NO_P_CHECK); - - if (_inventoryScrollSpeed == -1) { - uint32 endTime = _system->getMillis() + _tickLength * 15; - int times = 0; - while (_system->getMillis() < endTime) { - _screen->copyRegion(0, 144, 0, 0, 320, 12, 0, 2, Screen::CR_NO_P_CHECK); - _screen->copyRegion(0, 144, 0, 0, 320, 12, 0, 2, Screen::CR_NO_P_CHECK); - ++times; - } - - times = MAX(times, 1); - - int speed = 60 / times; - if (speed <= 1) - _inventoryScrollSpeed = 1; - else if (speed >= 8) - _inventoryScrollSpeed = 8; - else - _inventoryScrollSpeed = speed; - } - - int y = 144; - int y2 = 144 + _inventoryScrollSpeed; - uint32 waitTill = _system->getMillis() + _tickLength; - int times = 0; - - while (y2 < 188) { - _screen->copyRegion(0, 0, 0, y2, 320, 56, 2, 0, Screen::CR_NO_P_CHECK); - _screen->copyRegion(0, y, 0, y, 320, _inventoryScrollSpeed, 2, 0, Screen::CR_NO_P_CHECK); - _screen->updateScreen(); - - ++times; - if (_inventoryScrollSpeed == 1 && times == 3) { - while (waitTill > _system->getMillis()) - _system->delayMillis(10); - times = 0; - waitTill = _system->getMillis() + _tickLength; - } - - y += _inventoryScrollSpeed; - y2 += _inventoryScrollSpeed; - } - - _screen->copyRegion(0, 0, 0, 188, 320, 56, 2, 0, Screen::CR_NO_P_CHECK); - _screen->copyRegion(0, y, 0, y, 320, 188-y, 2, 0, Screen::CR_NO_P_CHECK); - _screen->showMouse(); -} - -void KyraEngine_v3::drawMalcolmsMoodText() { - debugC(9, kDebugLevelMain, "KyraEngine_v3::drawMalcolmsMoodText()"); - static const int stringId[] = { 0x32, 0x37, 0x3C }; - - if (queryGameFlag(0x219)) - return; - - const char *string = (const char*)getTableEntry(_cCodeFile, stringId[_malcolmsMood]); - - Screen::FontId oldFont = _screen->setFont(Screen::FID_8_FNT); - _screen->_charWidth = -2; - - int width = _screen->getTextWidth(string); - - _screen->_charWidth = 0; - _screen->setFont(oldFont); - - int pageBackUp = _screen->_curPage; - const int x = 280 - (width / 2); - int y = 0; - if (_inventoryState) { - y = 189; - _screen->_curPage = 0; - } else { - y = 45; - _screen->_curPage = 2; - } - - _screen->hideMouse(); - _screen->drawShape(_screen->_curPage, getShapePtr(432), 244, 189, 0, 0); - _text->printText(string, x, y+1, 0xFF, 0xF0, 0x00); - _screen->showMouse(); - _screen->_curPage = pageBackUp; -} - -void KyraEngine_v3::drawMalcolmsMoodPointer(int frame, int page) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::drawMalcolmsMoodPointer(%d, %d)", frame, page); - static const int stateTable[] = { - 1, 6, 11 - }; - - if (frame == -1) - frame = stateTable[_malcolmsMood]; - if (queryGameFlag(0x219)) - frame = 13; - - if (page == 0) { - _invWsa->setX(0); - _invWsa->setY(0); - _invWsa->setDrawPage(0); - _invWsa->displayFrame(frame, 0); - _screen->updateScreen(); - } else if (page == 30) { - _invWsa->setX(0); - _invWsa->setY(-144); - _invWsa->setDrawPage(2); - _invWsa->displayFrame(frame, 0); - } - - _invWsaFrame = frame; -} - -void KyraEngine_v3::drawJestersStaff(int type, int page) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::drawJestersStaff(%d, %d)", type, page); - int y = 155; - if (page == 30) { - page = 2; - y -= 144; - } - - int shape = (type != 0) ? 454 : 453; - _screen->drawShape(page, getShapePtr(shape), 217, y, 0, 0); -} - -void KyraEngine_v3::redrawInventory(int page) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::redrawInventory(%d)", page); - int yOffset = 0; - - if (page == 30) { - page = 2; - yOffset = -144; - } - - int pageBackUp = _screen->_curPage; - _screen->_curPage = page; - _screen->hideMouse(); - - for (int i = 0; i < 10; ++i) { - clearInventorySlot(i, page); - if (_mainCharacter.inventory[i] != 0xFFFF) { - _screen->drawShape(page, getShapePtr(_mainCharacter.inventory[i]+248), _inventoryX[i], _inventoryY[i] + yOffset, 0, 0); - drawInventorySlot(page, _mainCharacter.inventory[i], i); - } - } - - _screen->showMouse(); - _screen->_curPage = pageBackUp; - - if (page == 0 || page == 1) - _screen->updateScreen(); -} - -void KyraEngine_v3::clearInventorySlot(int slot, int page) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::clearInventorySlot(%d, %d)", slot, page); - int yOffset = 0; - if (page == 30) { - page = 2; - yOffset = -144; - } - - _screen->drawShape(page, getShapePtr(slot+422), _inventoryX[slot], _inventoryY[slot] + yOffset, 0, 0); -} - -void KyraEngine_v3::drawInventorySlot(int page, int item, int slot) { - debugC(9, kDebugLevelMain, "KyraEngine_v3::drawInventorySlot(%d, %d, %d)", page, item, slot); - int yOffset = 0; - if (page == 30) { - page = 2; - yOffset = -144; - } - - _screen->drawShape(page, getShapePtr(item+248), _inventoryX[slot], _inventoryY[slot] + yOffset, 0, 0); -} - -} // end of namespace Kyra - |