Difference between revisions of "Sims 3:0x0166038C"
From SimsWiki
(→Name Map) |
m |
||
Line 24: | Line 24: | ||
So you need to match for example the first 5 chars and then run another loop to find the best match out of those. | So you need to match for example the first 5 chars and then run another loop to find the best match out of those. | ||
This doesn't feel like an ideal solution but it's the best we (TSR) have found so far for locating theese references. | This doesn't feel like an ideal solution but it's the best we (TSR) have found so far for locating theese references. | ||
+ | |||
+ | ::::Re: the above. This seems like a very inefficient way of doing it, becuase you can just hash64 the filename without the path or extension, and you get the instance ID, which you can check on much more quickly than a string. [[User:Delphy|Delphy]] 18:47, 25 July 2009 (CDT) | ||
<hr/> | <hr/> | ||
[[Sims 3:Main Page]] -> [[Sims 3:PackedFileTypes]] | [[Sims 3:Main Page]] -> [[Sims 3:PackedFileTypes]] |
Revision as of 00:47, 26 July 2009
Sims 3:Main Page -> Sims 3:PackedFileTypes
Name Map
Lists instance ID/resource name pairs. A package can have multiple name maps.
DWORD Version // usually has value 0x00000001 DWORD NumberOfRecords --repetition NumberOfRecords: QWORD InstanceID // little-endian DWORD NameLength BYTE[NameLength] // name characters, plain ASCII
How to use:
Theese resources can be used to locate named references found in pattern complates. For example: ($assetRoot)\\InGame\\Complates\\Materials\\Leather_Fur\\AnimalPrint\\leopard01Sml_3.tga To get a match for that string remove the path components and the extension from it, leaving you with: leopard01Sml_3 If the string is longer than 19 chars remove the ones that exceeds 19 Then you need to loop through all name entries and try to match the string against the beginning of the name strings, mathching the full string seldom works because an instance id is most of the time appended to it. In this case the corresponding name entry is leopard01Lrg_3_0xda129de723a4c2b8 So you need to match for example the first 5 chars and then run another loop to find the best match out of those. This doesn't feel like an ideal solution but it's the best we (TSR) have found so far for locating theese references.
- Re: the above. This seems like a very inefficient way of doing it, becuase you can just hash64 the filename without the path or extension, and you get the instance ID, which you can check on much more quickly than a string. Delphy 18:47, 25 July 2009 (CDT)