[cpp] Fixed up Triangulator and AnimationState.

This commit is contained in:
badlogic 2018-02-23 16:24:35 +01:00
parent d631b252be
commit 62ef2ba370
2 changed files with 9 additions and 16 deletions

View File

@ -132,42 +132,36 @@ namespace Spine {
}
TrackEntry* TrackEntry::setTimelineData(TrackEntry* to, Vector<TrackEntry*>& mixingToArray, Vector<int>& propertyIDs) {
if (to != NULL) {
mixingToArray.add(to);
}
if (to != NULL) mixingToArray.add(to);
TrackEntry* lastEntry = _mixingFrom != NULL ? _mixingFrom->setTimelineData(this, mixingToArray, propertyIDs) : this;
if (to != NULL) {
mixingToArray.removeAt(mixingToArray.size() - 1);
}
if (to != NULL) mixingToArray.removeAt(mixingToArray.size() - 1);
int mixingToLast = static_cast<int>(mixingToArray.size()) - 1;
Vector<Timeline*>& timelines = _animation->_timelines;
int timelinesCount = static_cast<int>(timelines.size());
_timelineData.setSize(timelinesCount);
_timelineDipMix.clear();
_timelineDipMix.setSize(timelinesCount);
// outer:
for (int i = 0; i < timelinesCount; ++i) {
int i = 0;
continue_outer:
for (; i < timelinesCount; ++i) {
int id = timelines[i]->getPropertyId();
if (propertyIDs.contains(id)) {
_timelineData[i] = AnimationState::Subsequent;
}
else {
} else {
propertyIDs.add(id);
if (to == NULL || !to->hasTimeline(id)) {
_timelineData[i] = AnimationState::First;
}
else {
} else {
for (int ii = mixingToLast; ii >= 0; --ii) {
TrackEntry* entry = mixingToArray[ii];
if (!entry->hasTimeline(id)) {
if (entry->_mixDuration > 0) {
_timelineData[i] = AnimationState::DipMix;
_timelineDipMix[i] = entry;
i++;
goto continue_outer; // continue outer;
}
break;
@ -176,7 +170,6 @@ namespace Spine {
_timelineData[i] = AnimationState::Dip;
}
}
continue_outer: {}
}
return lastEntry;

View File

@ -83,7 +83,7 @@ namespace Spine {
}
break;
}
break_outer:
break_outer:
if (next == 0) {
do {