diff -ur ScummVM-cvs20030330/scummvm/scumm/bundle.cpp ScummVM-cvs20030330+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-cvs20030330/scummvm/scumm/script_v8.cpp ScummVM-cvs20030330+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-cvs20030330/scummvm/scumm/scumm.h ScummVM-cvs20030330+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); |