@@ -26,15 +26,16 @@ override protected bool LoadInternal()
2626 int entryCount = reader . ReadInt32 ( ) ;
2727 reader . BaseStream . Position += 4 ;
2828
29- // Resource[] entries = new Resource[entryCount];
29+ Resource [ ] entries = new Resource [ entryCount ] ;
3030 for ( int i = 0 ; i < entryCount ; i ++ )
3131 {
3232 Resource resource = new Resource ( ) ;
3333 resource . composite_instance_id = Utilities . Consume < ShortGuid > ( reader ) ;
3434 resource . resource_id = Utilities . Consume < ShortGuid > ( reader ) ; //this is the id that's used in commands.pak, frequently translates to Door/AnimatedModel/Light/DYNAMIC_PHYSICS_SYSTEM
35- resource . index = reader . ReadInt32 ( ) ;
36- Entries . Add ( resource ) ;
35+ int index = reader . ReadInt32 ( ) ;
36+ entries [ index ] = resource ;
3737 }
38+ Entries = entries . ToList ( ) ;
3839 }
3940 return true ;
4041 }
@@ -48,14 +49,14 @@ override protected bool SaveInternal()
4849 writer . BaseStream . SetLength ( 0 ) ;
4950 writer . Write ( new byte [ 4 ] { 0xCC , 0xBA , 0xED , 0xFE } ) ;
5051 writer . Write ( ( Int32 ) 1 ) ;
51- writer . Write ( Entries . Count ) ;
52+ writer . Write ( orderedEntries . Count ) ;
5253 writer . Write ( ( Int32 ) 0 ) ;
5354
54- for ( int i = 0 ; i < Entries . Count ; i ++ )
55+ for ( int i = 0 ; i < orderedEntries . Count ; i ++ )
5556 {
56- Utilities . Write ( writer , Entries [ i ] . composite_instance_id ) ;
57- Utilities . Write ( writer , Entries [ i ] . resource_id ) ;
58- Utilities . Write ( writer , Entries [ i ] . index ) ;
57+ Utilities . Write ( writer , orderedEntries [ i ] . composite_instance_id ) ;
58+ Utilities . Write ( writer , orderedEntries [ i ] . resource_id ) ;
59+ writer . Write ( Entries . IndexOf ( orderedEntries [ i ] ) ) ;
5960 }
6061 }
6162 return true ;
@@ -67,7 +68,6 @@ public class Resource
6768 {
6869 public ShortGuid composite_instance_id ;
6970 public ShortGuid resource_id ;
70- public int index ;
7171 } ;
7272 #endregion
7373 }
0 commit comments