@@ -201,11 +201,11 @@ public void LoadPackage()
201201 subfiles . Add ( newSubfile ) ;
202202 }
203203 }
204- else //MySims, MySims Kingdom etc, don't know if all the index versions work
204+ else //MySims and MySims Kingdom use these
205205 {
206206 uint indexversion = reader . ReadUInt32 ( ) ;
207207
208- if ( indexversion == 0 ) //MYSIMS USES THIS, SO YOU NEED TO IMPLEMENT IT
208+ if ( indexversion == 0 )
209209 {
210210 Console . WriteLine ( "index version 0" ) ;
211211 for ( uint i = 0 ; i < filecount ; i ++ )
@@ -284,6 +284,34 @@ public void LoadPackage()
284284 subfiles . Add ( newSubfile ) ;
285285 }
286286 }
287+ if ( indexversion == 4 )
288+ {
289+ Console . WriteLine ( "index version 4" ) ;
290+ reader . BaseStream . Position += 4 ;
291+
292+ for ( uint i = 0 ; i < filecount ; i ++ )
293+ {
294+ Subfile newSubfile = new Subfile ( ) ;
295+
296+ newSubfile . typeID = reader . ReadUInt32 ( ) ;
297+ newSubfile . hash = reader . ReadUInt64 ( ) ;
298+ newSubfile . fileoffset = reader . ReadUInt32 ( ) ;
299+ newSubfile . filesize = reader . ReadUInt32 ( ) ;
300+ newSubfile . uncompressedsize = reader . ReadUInt32 ( ) ;
301+
302+ if ( newSubfile . filesize == newSubfile . uncompressedsize )
303+ {
304+ newSubfile . uncompressedsize = 0 ;
305+ }
306+
307+ subfiles . Add ( newSubfile ) ;
308+ }
309+ }
310+ else
311+ {
312+ MessageBox . Show ( "Unknown index version: " + indexversion ) ;
313+ return ;
314+ }
287315 }
288316
289317 //extract files
@@ -362,12 +390,12 @@ public void LoadPackage()
362390 break ;
363391
364392 case 0x3681D75B : //LUA MSA
365- fileextension = ".lua " ;
393+ fileextension = ".luac " ;
366394 containslua = true ;
367395 break ;
368396
369397 case 0x2B8E2411 : //LUA MSK
370- fileextension = ".lua " ;
398+ fileextension = ".luac " ;
371399 containslua = true ;
372400 break ;
373401
@@ -399,11 +427,11 @@ public void LoadPackage()
399427 fileextension = ".buildableregion" ;
400428 break ;
401429
402- case 0xA5DCD485 : //LLMF MSA
430+ case 0xA5DCD485 : //LLMF level bin MSA
403431 fileextension = ".llmf" ;
404432 break ;
405433
406- case 0x58969018 : //LLMF MSK
434+ case 0x58969018 : //LLMF level bin MSK
407435 fileextension = ".llmf" ;
408436 break ;
409437
@@ -435,6 +463,106 @@ public void LoadPackage()
435463 fileextension = ".phys" ;
436464 break ;
437465
466+ case 0x01661233 : //model used by MySims, not the same as rmdl
467+ fileextension = ".model" ;
468+ break ;
469+
470+ case 0x0166038c :
471+ fileextension = ".KeyNameMap" ;
472+ break ;
473+
474+ case 0x015A1849 :
475+ fileextension = ".geometry" ;
476+ break ;
477+
478+ case 0x00b552ea :
479+ fileextension = ".oldSpeedTree" ;
480+ break ;
481+
482+ case 0x021d7e8c :
483+ fileextension = ".speedTree" ;
484+ break ;
485+
486+ case 0x8e342417 :
487+ fileextension = ".compositeTexture" ;
488+ break ;
489+
490+ case 0x025ed6f4 :
491+ fileextension = ".simOutfit" ;
492+ break ;
493+
494+ case 0x585ee310 :
495+ fileextension = ".levelXml" ;
496+ break ;
497+
498+ case 0x474999b4 : //uncompiled lua script
499+ fileextension = ".lua" ;
500+ break ;
501+
502+ case 0x50182640 : //Light set XML MySims
503+ fileextension = ".lightSetXml" ;
504+ break ;
505+
506+ case 0x50002128 : //Light set bin MySims
507+ fileextension = ".lightSetBin" ;
508+ break ;
509+
510+ case 0xdc37e964 : //xml
511+ fileextension = ".xml" ;
512+ break ;
513+
514+ case 0x2c81b60a : //footprint set MySims
515+ fileextension = ".footprintSet" ;
516+ break ;
517+
518+ case 0xc876c85e : //object construction xml
519+ fileextension = ".objectConstructionXml" ;
520+ break ;
521+
522+ case 0xc08ec0ee : //object construction bin
523+ fileextension = ".objectConstructionBin" ;
524+ break ;
525+
526+ case 0x4045d294 : //slot xml
527+ fileextension = ".slotXml" ;
528+ break ;
529+
530+ case 0xcf60795e : //swm
531+ fileextension = ".swm" ;
532+ break ;
533+
534+ case 0x9752e396 : //SwarmBin
535+ fileextension = ".SwarmBin" ;
536+ break ;
537+
538+ case 0xe0d83029 : //XmlBin
539+ fileextension = ".XmlBin" ;
540+ break ;
541+
542+ case 0xa6856948 : //CABXml
543+ fileextension = ".CABXml" ;
544+ break ;
545+
546+ case 0xc644f440 : //CABBin
547+ fileextension = ".CABBin" ;
548+ break ;
549+
550+ case 0x5bca8c06 : //big
551+ fileextension = ".big" ;
552+ break ;
553+
554+ case 0xb61215e9 : //LightBoxXml
555+ fileextension = ".lightBoxXml" ;
556+ break ;
557+
558+ case 0xd6215201 : //LightBoxBin
559+ fileextension = ".lightBoxBin" ;
560+ break ;
561+
562+ case 0x1e1e6516 : //xmb
563+ fileextension = ".xmb" ;
564+ break ;
565+
438566 default :
439567 Console . WriteLine ( "Unknown type ID " + subfiles [ i ] . typeID ) ;
440568 Console . WriteLine ( "and this type ID appears " + GetNumOccurrencesOfTypeID ( subfiles [ i ] . typeID ) + " times in total." ) ;
0 commit comments