A long time ago, in a virtual machine far, far away...

It is a period of bug fixing. Rebel
developers, coding from a public
project, have won their umpteenth victory
against the evil Actor Walk Bugs.
 
During the debugging, programmers 
used secret plans to the LucasArts'
ultimate tool, the SCUMM engine, an
extensible scripting system with enough
power to create an entire adventure.

Pursued by ensuing sinister regressions,
High King Fingolfin gleefully jumps up
and down, making use of the hotkey
that can save his games and restore
them back again later....

[With apologies to George Lucas. Good
riddance to bugs #751662, #771483, #959001,
#1329457, #1329498, #1329529, #1527672,
#1538260, #1571701, #1571705, #1571740,
and a warm welcome to the regressions
this change will cause. :-) ]

svn-id: r26090
This commit is contained in:
Max Horn 2007-03-11 15:23:50 +00:00
parent a1b5d99835
commit b07482b0b2
5 changed files with 180 additions and 61 deletions

View file

@ -1202,6 +1202,9 @@ void ScummEngine_v2::o2_walkActorToObject() {
if (whereIsObject(obj) != WIO_NOT_FOUND) {
int x, y, dir;
getObjectXYPos(obj, x, y, dir);
AdjustBoxResult r = a->adjustXYToBeInBox(x, y);
x = r.x;
y = r.y;
a->startWalkActor(x, y, dir);
}
}
@ -1212,9 +1215,12 @@ void ScummEngine_v2::o2_putActorAtObject() {
a = derefActor(getVarOrDirectByte(PARAM_1), "o2_putActorAtObject");
obj = getVarOrDirectWord(PARAM_2);
if (whereIsObject(obj) != WIO_NOT_FOUND)
if (whereIsObject(obj) != WIO_NOT_FOUND) {
getObjectXYPos(obj, x, y);
else {
AdjustBoxResult r = a->adjustXYToBeInBox(x, y);
x = r.x;
y = r.y;
} else {
x = 30;
y = 60;
}
@ -1374,6 +1380,9 @@ void ScummEngine_v2::o2_loadRoomWithEgo() {
startScene(a->_room, a, obj);
getObjectXYPos(obj, x2, y2, dir);
AdjustBoxResult r = a->adjustXYToBeInBox(x2, y2);
x2 = r.x;
y2 = r.y;
a->putActor(x2, y2, _currentRoom);
a->setDirection(dir + 180);