diff options
Diffstat (limited to 'engines/bladerunner/movement_track.cpp')
-rw-r--r-- | engines/bladerunner/movement_track.cpp | 169 |
1 files changed, 86 insertions, 83 deletions
diff --git a/engines/bladerunner/movement_track.cpp b/engines/bladerunner/movement_track.cpp index 01dff24422..0913e77fa2 100644 --- a/engines/bladerunner/movement_track.cpp +++ b/engines/bladerunner/movement_track.cpp @@ -23,102 +23,105 @@ #include "bladerunner/movement_track.h" namespace BladeRunner { - MovementTrack::MovementTrack() - { - reset(); - } - MovementTrack::~MovementTrack() - { - reset(); - } +MovementTrack::MovementTrack() +{ + reset(); +} - void MovementTrack::reset() - { - _currentIndex = -1; - _lastIndex = -1; - _hasNext = 0; - _paused = 0; - for (int i = 0; i < 100; i++) - { - _entries[i].waypointId = -1; - _entries[i].delay = -1; - _entries[i].angle = -1; - _entries[i].running = 0; - } - } +MovementTrack::~MovementTrack() +{ + reset(); +} - int MovementTrack::append(int waypointId, int delay, int running) +void MovementTrack::reset() +{ + _currentIndex = -1; + _lastIndex = -1; + _hasNext = 0; + _paused = 0; + for (int i = 0; i < 100; i++) { - return append(waypointId, delay, -1, running); + _entries[i].waypointId = -1; + _entries[i].delay = -1; + _entries[i].angle = -1; + _entries[i].running = 0; } +} - int MovementTrack::append(int waypointId, int delay, int angle, int running) - { - if (_lastIndex > sizeof(_entries)) - return 0; - _entries[_lastIndex].waypointId = waypointId; - _entries[_lastIndex].delay = delay; - _entries[_lastIndex].angle = angle; - _entries[_lastIndex].running = running; - - _lastIndex++; - _hasNext = 1; - _currentIndex = 0; - return 1; - } +int MovementTrack::append(int waypointId, int delay, int running) +{ + return append(waypointId, delay, -1, running); +} - void MovementTrack::flush() - { - reset(); - } +int MovementTrack::append(int waypointId, int delay, int angle, int running) +{ + if (_lastIndex > ARRAYSIZE(_entries)) + return 0; - void MovementTrack::repeat() - { - _currentIndex = 0; - _hasNext = 1; - } + _entries[_lastIndex].waypointId = waypointId; + _entries[_lastIndex].delay = delay; + _entries[_lastIndex].angle = angle; + _entries[_lastIndex].running = running; - int MovementTrack::pause() - { - _paused = 1; - return 1; - } + _lastIndex++; + _hasNext = 1; + _currentIndex = 0; + return 1; +} - int MovementTrack::unpause() - { - _paused = 0; - return 1; - } +void MovementTrack::flush() +{ + reset(); +} - int MovementTrack::isPaused() - { - return _paused; - } +void MovementTrack::repeat() +{ + _currentIndex = 0; + _hasNext = 1; +} + +int MovementTrack::pause() +{ + _paused = 1; + return 1; +} - int MovementTrack::hasNext() +int MovementTrack::unpause() +{ + _paused = 0; + return 1; +} + +int MovementTrack::isPaused() +{ + return _paused; +} + +int MovementTrack::hasNext() +{ + return _hasNext; +} + +int MovementTrack::next(int *waypointId, int *delay, int *angle, int *running) +{ + if (_currentIndex < _lastIndex && this->_hasNext) { - return _hasNext; + *waypointId = _entries[_currentIndex].waypointId; + *delay = _entries[_currentIndex].delay; + *angle = _entries[_currentIndex].angle; + *running = _entries[_currentIndex++].running; + return 1; } - - int MovementTrack::next(int *waypointId, int *delay, int *angle, int *running) + else { - if (_currentIndex < _lastIndex && this->_hasNext) - { - *waypointId = _entries[_currentIndex].waypointId; - *delay = _entries[_currentIndex].delay; - *angle = _entries[_currentIndex].angle; - *running = _entries[_currentIndex++].running; - return 1; - } - else - { - *waypointId = -1; - *delay = -1; - *angle = -1; - *running = 0; - _hasNext = 0; - return 0; - } + *waypointId = -1; + *delay = -1; + *angle = -1; + *running = 0; + _hasNext = 0; + return 0; } -}
\ No newline at end of file +} + +} // End of namespace BladeRunner |