I'm working on a limb based animator, where you can switch between the objects you're working on. Unfortunately, when it comes to setting and deleting keyframes my arrays get rather messed up and I'm struggling to get them sorted. Here's one of them:
ObjectLimbOffset#(Object, KeyFrame, Limb, 3)
For each object there can be up to 1000 keyframes, and for each keyframe there can be up to 1000 limbs with an X, Y and Z offset.
When I set keyframe 10, I say: ObjectLimbOffset#(1, 1) = 10 and then follow it with all the limb offset numbers. Then if I want to set Keyframe 5, I say ObjectLimbOffset#(1, 2) = 5 instead. But in the arrays, Keyframe 5 now follows Keyframe 10, and I want to swap them over. I've tried Bubble sorting, but it doesn't seem to do anything at all.
Could someone take a look at my code and give me a hand please?
rem Initialise sorting arrays and variables
Dim TempFile#(1, MaxNoOfLimbs, 3)
rem Bubble sort folders into alphabetical order
rem (First letter only)
Sorted = 0
LastRecord = NumberOfKeyframes
rem Bubble sort Folders to top of list
While (Lastrecord>1) and (Sorted = 0)
Sorted = 1
For T = 0 to NumberOfKeyframes-1
If (ObjectLimbOffset#(ObjectSelected, T)) > (ObjectLimbOffset#(ObjectSelected, T))
TempFile#(1) = ObjectLimbOffset#(ObjectSelected, T+1)
For L = 1 to ObjectLimbs(ObjectSelected)
TempFile#(1, L, 1) = ObjectLimbOffset#(ObjectSelected, T+1, L, 1)
TempFile#(1, L, 2) = ObjectLimbOffset#(ObjectSelected, T+1, L, 2)
TempFile#(1, L, 3) = ObjectLimbOffset#(ObjectSelected, T+1, L, 3)
Next L
ObjectLimbOffset#(ObjectSelected, T+1) = ObjectLimbOffset#(ObjectSelected, T)
For L = 1 to ObjectLimbs(ObjectSelected)
ObjectLimbOffset#(ObjectSelected, T+1, L, 1) = ObjectLimbOffset#(ObjectSelected, T, L, 1)
ObjectLimbOffset#(ObjectSelected, T+1, L, 2) = ObjectLimbOffset#(ObjectSelected, T, L, 2)
ObjectLimbOffset#(ObjectSelected, T+1, L, 3) = ObjectLimbOffset#(ObjectSelected, T, L, 3)
Next L
ObjectLimbOffset#(ObjectSelected, T) = TempFile#(1)
For L = 1 to ObjectLimbs(ObjectSelected)
ObjectLimbOffset#(ObjectSelected, T, L, 1) = TempFile#(1, L, 1)
ObjectLimbOffset#(ObjectSelected, T, L, 2) = TempFile#(1, L, 2)
ObjectLimbOffset#(ObjectSelected, T, L, 3) = TempFile#(1, L, 3)
Next L
Sorted = 0
endif
Next t
Dec LastRecord
Endwhile
Another problem I've got is that whenever I delete a keyframe, I get a gap in the array and I can't shuffle the other data around to fill it.
On our way 'ome, on our way 'ome...