diff options
Diffstat (limited to 'engines/hugo/route.cpp')
-rw-r--r-- | engines/hugo/route.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/engines/hugo/route.cpp b/engines/hugo/route.cpp index 54dae88c28..17c23ea785 100644 --- a/engines/hugo/route.cpp +++ b/engines/hugo/route.cpp @@ -8,12 +8,12 @@ * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -45,6 +45,17 @@ Route::Route(HugoEngine *vm) : _vm(vm) { _routeIndex = -1; // Hero not following a route _routeType = kRouteSpace; // Hero walking to space _routeObjId = -1; // Hero not walking to anything + + for (int i = 0; i < kMaxSeg; i++) + _segment[i]._y = _segment[i]._x1 = _segment[i]._x2 = 0; + + _segmentNumb = 0; + _routeListIndex = 0; + _destX = _destY = 0; + _heroWidth = 0; + _routeFoundFl = false; + _fullStackFl = false; + _fullSegmentFl = false; } void Route::resetRoute() { @@ -303,7 +314,7 @@ Common::Point *Route::newNode() { _routeListIndex++; if (_routeListIndex >= kMaxNodes) // Too many nodes - return 0; // Incomplete route - failure + return nullptr; // Incomplete route - failure _route[_routeListIndex] = _route[_routeListIndex - 1]; // Initialize with previous node return &_route[_routeListIndex]; @@ -373,9 +384,9 @@ bool Route::findRoute(const int16 cx, const int16 cy) { _segment[_segmentNumb]._x2 = herox2; _segmentNumb++; - Common::Point *routeNode; // Ptr to route node // Look in segments[] for straight lines from destination to hero for (i = 0, _routeListIndex = 0; i < _segmentNumb - 1; i++) { + Common::Point *routeNode; // Ptr to route node if ((routeNode = newNode()) == 0) // New node for new segment return false; // Too many nodes routeNode->y = _segment[i]._y; @@ -427,7 +438,7 @@ bool Route::findRoute(const int16 cx, const int16 cy) { void Route::processRoute() { debugC(1, kDebugRoute, "processRoute"); - static bool turnedFl = false; // Used to get extra cylce for turning + static bool turnedFl = false; // Used to get extra cycle for turning if (_routeIndex < 0) return; |