Ganz kurz vorneweg:
Die Problematik tritt nur bei Verbandseinsätzen (von anderen Spielern geteilte) auf. Da ich selber nicht besonders aktiv spiele war es deshalb so schwer, erstmal die Problematik reproduzieren zu können.
Was ist nun also das Problem?
Ich sortiere die Einsatzliste nicht selber, sondern lass das ganze den Browser übernehmen. d.h. ich verschiebe keine Elemente sondern ich gebe sog. order-numbers an. Der Browser kann damit umgehen und ändert nur die Anzeigereihenfolge. Wenn ich in die andere Richtung sortieren möchte, weise ich den Browser einfach an, die Elemente in der umgekehrten Reihenfolge anzuzeigen, als normal wäre. Damit konnte ich die Sortierung ziemlich performant umsetzen und auch das Umdrehen der Sortierung braucht kaum Rechenoperationen, besonders aber kein aufwendiges Verschieben. Letzteres ist leider immer sehr Performance-Lastig und damit ist es umso besser, wenn sich das vermeiden lässt.
Wenn ich nun also z.B. nach Verdienst sortieren lasse, kann ich einfach jedem Einsatz-Element in der Liste als order-Nummer den jeweiligen Creditswert übergeben und die eigentliche Sortierung passiert dann quasi automatisch, ohne dass ich da noch groß rumpfuschen muss.
Sollten zwei Elemente jetzt die selbe Order-Number erhalten, weil sie z.B. gleich viel Verdienst geben, so wird einfach die normale Reihenfolge für diese Elemente beibehalten. Für Verbandseinsätze heißt das konkret: In der Reihenfolge, in der sie freigegeben werden.
So grundsätzlich ist das ja kein Problem und in der Einsatzliste ist es auch eigentlich nicht weiter relevant, in welcher Reihenfolge genau die Einsätze stehen, solange sie selben Verdienst geben.
Was löst jetzt aber das eigentliche Problem aus?
Für die Integration ins Einsatzfenster muss ich mir irgendwie merken, in welcher Reihenfolge sich die Elemente befinden. Dazu schau ich mir zwar die genannten order-Nummern an und wenn zwei gleich sind auch die Einsatz-ID, aber nicht die tatsächliche Reihenfolge.
Damit hab ich am Ende eben eine "falsche" Liste, die die Freigabereihenfolge nicht mit beachtet. Das muss ich jetzt mal schauen, wie ich das am besten fixen kann.