mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-20 00:45:10 +00:00
Final loom fixes. LoomCD is now completable, apart from sound glitches and lack of masking.
svn-id: r3880
This commit is contained in:
parent
fb0cb66588
commit
141bac6fcb
@ -795,7 +795,7 @@ void Scumm::walkActor(Actor *a) {
|
||||
if (a->walkbox == a->walkdata.destbox)
|
||||
break;
|
||||
j = getPathToDestBox(a->walkbox,a->walkdata.destbox);
|
||||
if (j==-1) {
|
||||
if (j==-1 || j>0xF0) {
|
||||
a->walkdata.destbox = a->walkbox;
|
||||
a->moving |= 8;
|
||||
return;
|
||||
|
13
script.cpp
13
script.cpp
@ -408,6 +408,7 @@ void Scumm::drawBox(int x, int y, int x2, int y2, int color) {
|
||||
|
||||
if (x>319) return;
|
||||
if (x<0) x=0;
|
||||
if (y<0) y=0;
|
||||
if (x2<0) return;
|
||||
if (x2>320) x2=320;
|
||||
if (y2 > bottom) y2=bottom;
|
||||
@ -442,11 +443,15 @@ void Scumm::stopObjectCode() {
|
||||
}
|
||||
|
||||
if (ss->where!=WIO_GLOBAL && ss->where!=WIO_LOCAL) {
|
||||
if (ss->cutsceneOverride)
|
||||
error("Object %d ending with active cutscene/override", ss->number);
|
||||
if (ss->cutsceneOverride) {
|
||||
warning("Object %d ending with active cutscene/override", ss->number);
|
||||
ss->cutsceneOverride = 0;
|
||||
}
|
||||
} else {
|
||||
if (ss->cutsceneOverride)
|
||||
error("Script %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
|
||||
if (ss->cutsceneOverride) {
|
||||
warning("Script %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
|
||||
ss->cutsceneOverride = 0;
|
||||
}
|
||||
}
|
||||
ss->number = 0;
|
||||
ss->status = 0;
|
||||
|
@ -1022,7 +1022,7 @@ void Scumm::o5_doSentence() {
|
||||
|
||||
void Scumm::o5_drawBox() {
|
||||
int x,y,x2,y2,color;
|
||||
|
||||
|
||||
x = getVarOrDirectWord(0x80);
|
||||
y = getVarOrDirectWord(0x40);
|
||||
|
||||
@ -2351,6 +2351,9 @@ void Scumm::o5_walkActorToActor() {
|
||||
int nr;
|
||||
int nr2 = getVarOrDirectByte(0x80);
|
||||
a = derefActorSafe(nr2, "o5_walkActorToActor");
|
||||
if (!a)
|
||||
return;
|
||||
|
||||
if (a->room != _currentRoom) {
|
||||
getVarOrDirectByte(0x40);
|
||||
fetchScriptByte();
|
||||
@ -2365,6 +2368,9 @@ void Scumm::o5_walkActorToActor() {
|
||||
}
|
||||
// warning("walk actor %d to actor %d", nr, nr2);
|
||||
a2 = derefActorSafe(nr, "o5_walkActorToActor(2)");
|
||||
if (!a2)
|
||||
return;
|
||||
|
||||
if (a2->room != _currentRoom) {
|
||||
fetchScriptByte();
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user