ActorInfo.product.sbyml: Difference between revisions
imported>BravelyPeculiar mNo edit summary |
imported>BravelyPeculiar mNo edit summary |
||
Line 24: | Line 24: | ||
|instSize | |instSize | ||
|int | |int | ||
|Size of the heap that will be allocated for an actor instance | |Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes | ||
|- | |- | ||
|name | |name |
Revision as of 09:53, 23 March 2019
This resource is found in the unpacked content files.
Its canonical resource path is "Actor/ActorInfo.product.byml".
ActorInfo contains general information about all actors in the game. It is queried when constructing actors and to access actor data efficiently without having to load actors.
ActorInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from ActorParam files (which can be found in the game content) and other source-only files.
Contents
Actors
Actors is an array of dictionaries.
Each actor has its own entry in this array, which must have the following properties:
Key | Type | Description |
---|---|---|
bugMask | int | ? |
instSize | int | Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes |
name | str | Actor name |
profile | str | Profile name (see ActorTemplate) |
sortKey | int | ? |
tags | dict | A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise. |
yLimitAlgorithm | str | See blifecondition. This might not be a required entry. [check] |
Hashes
Hashes is an array of CRC32 hashes of actor names.
This array must be sorted because ActorInfoData performs a binary search on this array to find actor entries efficiently. As a direct consequence the actor array must be sorted according to the CRC32 hashes of the actor names.
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.