diff -ur ScummVM-cvs20030331/scummvm/scumm/bundle.cpp ScummVM-cvs20030331+hack/scummvm/scumm/bundle.cpp
|
old
|
new
|
|
| 361 | 361 | return final_size; |
| 362 | 362 | } |
| 363 | 363 | } |
| 364 | | warning("Failed finding voice %s", name); |
| | 364 | debug(2, "Failed finding voice %s", name); |
| 365 | 365 | return final_size; |
| 366 | 366 | } |
| 367 | 367 | |
diff -ur ScummVM-cvs20030331/scummvm/scumm/script_v8.cpp ScummVM-cvs20030331+hack/scummvm/scumm/script_v8.cpp
|
old
|
new
|
|
| 515 | 515 | } |
| 516 | 516 | pointer[j] = 0; |
| 517 | 517 | |
| 518 | | // Stop any talking that's still going on |
| 519 | | if (_sound->_talkChannel > -1) |
| 520 | | _mixer->stop(_sound->_talkChannel); |
| | 518 | int new_sound = _sound->playBundleSound(pointer); |
| | 519 | if (new_sound != -1) { |
| | 520 | // Stop any talking that's still going on |
| | 521 | if (_sound->_talkChannel > -1) |
| | 522 | _mixer->stop(_sound->_talkChannel); |
| | 523 | _sound->_talkChannel = new_sound; |
| | 524 | } |
| 521 | 525 | |
| 522 | | _sound->_talkChannel = _sound->playBundleSound(pointer); |
| 523 | 526 | _messagePtr = _transText; |
| 524 | 527 | } |
| 525 | 528 | |
| … |
… |
|
| 607 | 610 | _charset->_nextTop = _charset->_top; |
| 608 | 611 | } |
| 609 | 612 | } while (c); |
| | 613 | |
| | 614 | _blastTextQueue[i].left = _charset->_strLeft; |
| | 615 | _blastTextQueue[i].right = _charset->_strRight; |
| | 616 | _blastTextQueue[i].top = _charset->_strTop; |
| | 617 | _blastTextQueue[i].bottom = _charset->_strBottom; |
| 610 | 618 | } |
| 611 | 619 | _charset->_ignoreCharsetMask = false; |
| 612 | 620 | } |
| 613 | 621 | |
| | 622 | void Scumm::removeBlastTexts() { |
| | 623 | int i; |
| | 624 | |
| | 625 | for (i = 0; i < _blastTextQueuePos; i++) { |
| | 626 | restoreBG(_blastTextQueue[i].left, _blastTextQueue[i].top, _blastTextQueue[i].right, _blastTextQueue[i].bottom); |
| | 627 | } |
| | 628 | _blastTextQueuePos = 0; |
| | 629 | } |
| | 630 | |
| 614 | 631 | void Scumm_v8::o8_mod() { |
| 615 | 632 | int a = pop(); |
| 616 | 633 | push(pop() % a); |
| … |
… |
|
| 1614 | 1631 | // scripts. Probably a wrong push/pop somewhere. For now override to correct value. |
| 1615 | 1632 | array = 658; |
| 1616 | 1633 | ArrayHeader *ah = (ArrayHeader *)getResourceAddress(rtString, readVar(array)); |
| 1617 | | if (!strcmp((char *)ah->data, "Saveload Page")) |
| | 1634 | if (!strcmp((char *)ah->data, "Saveload Page") || !strcmp((char *)ah->data, "Object Names")) |
| 1618 | 1635 | push(1); |
| 1619 | 1636 | else |
| 1620 | 1637 | push(0); |
diff -ur ScummVM-cvs20030331/scummvm/scumm/scumm.h ScummVM-cvs20030331+hack/scummvm/scumm/scumm.h
|
old
|
new
|
|
| 116 | 116 | |
| 117 | 117 | struct BlastText { |
| 118 | 118 | int16 xpos, ypos; |
| | 119 | int16 left, right, top, bottom; |
| 119 | 120 | byte color; |
| 120 | 121 | byte charset; |
| 121 | 122 | bool center; |
| … |
… |
|
| 876 | 877 | |
| 877 | 878 | void enqueueText(byte *text, int x, int y, byte color, byte charset, bool center); |
| 878 | 879 | void drawBlastTexts(); |
| 879 | | void removeBlastTexts() { _blastTextQueuePos = 0; } |
| | 880 | void removeBlastTexts(); |
| 880 | 881 | |
| 881 | 882 | void enqueueObject(int objectNumber, int objectX, int objectY, int objectWidth, |
| 882 | 883 | int objectHeight, int scaleX, int scaleY, int image, int mode); |
diff -ur ScummVM-cvs20030331/scummvm/scumm/string.cpp ScummVM-cvs20030331+hack/scummvm/scumm/string.cpp
|
old
|
new
|
|
| 857 | 857 | if (_gameId == GID_CMI) { |
| 858 | 858 | if ((text[0] == '/') && (_existLanguageFile == true)) { |
| 859 | 859 | struct langIndexNode target; |
| 860 | | struct langIndexNode *found; |
| | 860 | struct langIndexNode *found = NULL; |
| 861 | 861 | |
| 862 | 862 | // copy name from text /..../ |
| 863 | 863 | for (l = 0; (l < 8) && (text[l + 1] != '/'); l++) |
| 864 | 864 | target.tag[l] = toupper(text[l + 1]); |
| 865 | 865 | target.tag[l] = 0; |
| 866 | 866 | |
| 867 | | found = (struct langIndexNode *)bsearch(&target, _languageIndex, _languageStrCount, sizeof(struct langIndexNode), indexCompare); |
| | 867 | // HACK: These are used for the object line when |
| | 868 | // using one object on another. I don't know if the |
| | 869 | // text in the language file is a placeholder or if |
| | 870 | // we're supposed to use it, but at least in the |
| | 871 | // English version things will work so much better if |
| | 872 | // we can't find translations for these. |
| 868 | 873 | |
| | 874 | if (strcmp(target.tag, "PU_M001") != 0 && strcmp(target.tag, "PU_M002") != 0) |
| | 875 | found = (struct langIndexNode *)bsearch(&target, _languageIndex, _languageStrCount, sizeof(struct langIndexNode), indexCompare); |
| 869 | 876 | if (found != NULL) { |
| 870 | 877 | File file; |
| 871 | 878 | |