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 | |