WTHR records contain information on weather. Weather is essentially a group of static (relative to camera) clouds, a group of dynamic clouds, a sky model, maybe sound, and some other data tied together. Weather indoors is mostly lighting data.
Note: WTHR uses an unusual field type naming convention for the dynamic clouds, it starts with 00TX and goes to L0TX, but rather than just 0-9 A-L, it simply uses the sequential ASCII characters, so after 90TX is :0TX, ;0TX, etc. Rather than put all 20+ identical field combinations on the page, simply one *0TX field is listed.
C | SubRecord | Name | Type/Size | Info |
---|---|---|---|---|
+ | EDID | editorId | zstring | Editor id |
- | *0TX | cloud textures | zstring | Path to .dds - 00TX maps to layer 0, layer n will use a texture, if there's a field ascii(ord('0')+n)0TX |
- | LNAM | unknown | uint32 | Number of Texture Layers always 0x04 or 0x1d |
- | MNAM | precipitation | formID | Precipitation - SPGD formID |
- | NNAM | visual effect | formID | Visual Effect |
- | RNAM | unknown | struct | 32 bytes, Cloud Speed Y (-0.1 - 0.1), byte n corresponds to layer n, float encoded as uint8: 0x00->-0.1, 0x7f->0, 0xfe->0.1 |
- | QNAM | unknown | struct | 32 bytes, Cloud Speed X (-0.1 - 0.1), byte n corresponds to layer n, encoding as above |
+ | PNAM | cloud texture color | struct[32] | 512 bytes, 32 structs of 16 bytes, one for each layer
|
- | JNAM | cloud texture alpha | struct[32] | 512 bytes, 32 structs of 16 bytes, one for each layer
|
+ | NAM0 | unknown | struct[] | 208/224/272 bytes, structs of 16 bytes, color definitions
The n-th struct corresponds to the following type
|
- | FNAM | unknown | struct | 32 byte structure - Fog Distance
|
+ | DATA | unknown | struct | 19 byte structure - several uint8 are displayed as float by the CK, see the ranges given
|
- | NAM1 | unknown | uint32 | Disabled flags - bit n corresponds to layer n, set if disabled |
* | SNAM | ambient sounds | struct | 8-byte struct
|
* | TNAM | sky statics | formID | Static (STAT) formID |
- | IMSP | image spaces | formID[4] | Array of 4 (IMGS) formIDs (Sunrise/Day/Sunset/Night) |
* | DALC | lighting data | struct | Directional Ambient, 4 fields for Sunrise, Day, Sunset, Night, usually 32 bytes, but just 24 in one case (TESTCloudyRain)
|
- | MODL | aurora model | MODL | Aurora - Includes optional field MODT |
- | NAM2 | uint32[4]? | unknown - appears together with NAM3, either four times 0x00ffffff or 0xffffffff, probably responsible for some of the default whites in NAM0. Only found in a couple of older forms, goes away when saving in CK. | |
- | NAM3 | uint32[4]? | unknown - same as NAM2 |
The weather TESTCloudyRain contains the following alternative fields:
SubRecord | Type/Size | Info |
---|---|---|
DNAM | zstring | Cloud Texture Layer 0 - Alternative to 00TX |
CNAM | zstring | Cloud Texture Layer 1 - Alternative to 10TX |
ANAM | zstring | Cloud Texture Layer 2 - Alternative to 20TX |
BNAM | zstring | Cloud Texture Layer 3 - Alternative to 30TX |
ONAM | uint8[4] | Alternative to QNAM
0x00 to 0x7f corresponds to CK displayed values of 0 to 0.1, unclear how values 0x80 to 0xff would be interpreted |