Ticket #3075: actorToPrintStrFor_V8.diff
File actorToPrintStrFor_V8.diff, 1.7 KB (added by , 17 years ago) |
---|
-
scumm/actor.cpp
1861 1861 } 1862 1862 if (_actorToPrintStrFor == 0xFF) { 1863 1863 setTalkingActor(0xFF); 1864 _charsetColor = _string[0].color; 1864 1865 } else { 1865 1866 a = derefActor(_actorToPrintStrFor, "actorTalk"); 1866 1867 setTalkingActor(a->_number); 1867 1868 if (!_string[0].no_talk_anim) { 1868 1869 a->runActorTalkScript(a->_talkStartFrame); 1869 _useTalkAnims = true;1870 1870 } 1871 }1872 1873 if (getTalkingActor() > 0x7F) {1874 _charsetColor = (byte)_string[0].color;1875 } else {1876 a = derefActor(getTalkingActor(), "actorTalk(2)");1877 1871 _charsetColor = a->_talkColor; 1878 1872 } 1873 1879 1874 _charsetBufPos = 0; 1880 1875 _talkDelay = 0; 1881 1876 _haveMsg = 1; … … 1987 1982 a->runActorTalkScript(a->_talkStopFrame); 1988 1983 _useTalkAnims = false; 1989 1984 } 1990 if (_game. version <= 7 && _game.heversion == 0)1985 if (_game.heversion == 0) 1991 1986 setTalkingActor(0xFF); 1992 1987 a->_heTalking = false; 1993 1988 } 1994 if (_game. version == 8 || _game.heversion >= 60)1989 if (_game.heversion >= 60) 1995 1990 setTalkingActor(0); 1996 1991 if (_game.version == 8) 1997 1992 VAR(VAR_HAVE_MSG) = 0; -
scumm/script_v8.cpp
466 466 switch (b) { 467 467 case 0xC8: // SO_PRINT_BASEOP 468 468 _string[m].loadDefault(); 469 if (n) 469 if (n) { 470 470 _actorToPrintStrFor = pop(); 471 // original V8 interpreter uses 0, whereas the existing talking code expects 0xFF 472 if (_actorToPrintStrFor == 0) 473 _actorToPrintStrFor = 0xFF; 474 } 471 475 break; 472 476 case 0xC9: // SO_PRINT_END 473 477 _string[m].saveDefault();