aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/pathfind.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/pathfind.cpp')
-rw-r--r--engines/dreamweb/pathfind.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/dreamweb/pathfind.cpp b/engines/dreamweb/pathfind.cpp
index 439ac9b177..ee6ced7e4d 100644
--- a/engines/dreamweb/pathfind.cpp
+++ b/engines/dreamweb/pathfind.cpp
@@ -73,7 +73,14 @@ RoomPaths *DreamBase::getRoomsPaths() {
return (RoomPaths *)result;
}
-void DreamGenContext::setWalk() {
+void DreamBase::faceRightWay() {
+ PathNode *paths = getRoomsPaths()->nodes;
+ uint8 dir = paths[data.byte(kManspath)].dir;
+ data.byte(kTurntoface) = dir;
+ data.byte(kLeavedirection) = dir;
+}
+
+void DreamBase::setWalk() {
if (data.byte(kLinepointer) != 254) {
// Already walking
data.byte(kFinaldest) = data.byte(kPointerspath);
@@ -100,7 +107,7 @@ void DreamGenContext::setWalk() {
}
}
-void DreamGenContext::autoSetWalk() {
+void DreamBase::autoSetWalk() {
if (data.byte(kFinaldest) == data.byte(kManspath))
return;
const RoomPaths *roomsPaths = getRoomsPaths();
@@ -137,7 +144,7 @@ void DreamBase::checkDest(const RoomPaths *roomsPaths) {
data.byte(kDestination) = destination;
}
-void DreamGenContext::findXYFromPath() {
+void DreamBase::findXYFromPath() {
const PathNode *roomsPaths = getRoomsPaths()->nodes;
data.byte(kRyanx) = roomsPaths[data.byte(kManspath)].x - 12;
data.byte(kRyany) = roomsPaths[data.byte(kManspath)].y - 12;
@@ -153,7 +160,7 @@ bool DreamGenContext::checkIfPathIsOn(uint8 index) {
return pathOn == 0xff;
}
-void DreamGenContext::bresenhams() {
+void DreamBase::bresenhams() {
workoutFrames();
Common::Point *lineData = &_lineData[0];
int16 startX = (int16)data.word(kLinestartx);