From 40f57744ef9eb93fa99d14664053bb1f1e0ffcea Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 7 Sep 2016 21:46:08 +0200 Subject: DM: Remove a GOTO from fixChronology() --- engines/dm/timeline.cpp | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'engines/dm') diff --git a/engines/dm/timeline.cpp b/engines/dm/timeline.cpp index 0f722077fa..1123900f23 100644 --- a/engines/dm/timeline.cpp +++ b/engines/dm/timeline.cpp @@ -142,36 +142,34 @@ void Timeline::fixChronology(uint16 timelineIndex) { if (eventCount == 1) return; - uint16 L0582_ui_EventIndex = _timeline[timelineIndex]; - TimelineEvent *timelineEvent = &_events[L0582_ui_EventIndex]; - bool L0585_B_ChronologyFixed = false; + uint16 eventIndex = _timeline[timelineIndex]; + TimelineEvent *timelineEvent = &_events[eventIndex]; + bool chronologyFixed = false; while (timelineIndex > 0) { /* Check if the event should be moved earlier in the timeline */ uint16 altTimelineIndex = (timelineIndex - 1) >> 1; if (isEventABeforeB(timelineEvent, &_events[_timeline[altTimelineIndex]])) { _timeline[timelineIndex] = _timeline[altTimelineIndex]; timelineIndex = altTimelineIndex; - L0585_B_ChronologyFixed = true; - } else { + chronologyFixed = true; + } else break; - } } - if (L0585_B_ChronologyFixed) - goto T0236011; - eventCount = ((eventCount - 1) - 1) >> 1; - while (timelineIndex <= eventCount) { /* Check if the event should be moved later in the timeline */ - uint16 altTimelineIndex = (timelineIndex << 1) + 1; - if (((altTimelineIndex + 1) < _eventCount) && (isEventABeforeB(&_events[_timeline[altTimelineIndex + 1]], &_events[_timeline[altTimelineIndex]]))) { - altTimelineIndex++; - } - if (isEventABeforeB(&_events[_timeline[altTimelineIndex]], timelineEvent)) { - _timeline[timelineIndex] = _timeline[altTimelineIndex]; - timelineIndex = altTimelineIndex; - } else { - break; + if (!chronologyFixed) { + eventCount = ((eventCount - 1) - 1) >> 1; + while (timelineIndex <= eventCount) { /* Check if the event should be moved later in the timeline */ + uint16 altTimelineIndex = (timelineIndex << 1) + 1; + if (((altTimelineIndex + 1) < _eventCount) && (isEventABeforeB(&_events[_timeline[altTimelineIndex + 1]], &_events[_timeline[altTimelineIndex]]))) + altTimelineIndex++; + + if (isEventABeforeB(&_events[_timeline[altTimelineIndex]], timelineEvent)) { + _timeline[timelineIndex] = _timeline[altTimelineIndex]; + timelineIndex = altTimelineIndex; + } else + break; } } -T0236011: - _timeline[timelineIndex] = L0582_ui_EventIndex; + + _timeline[timelineIndex] = eventIndex; } bool Timeline::isEventABeforeB(TimelineEvent* eventA, TimelineEvent* eventB) { -- cgit v1.2.3