Skip to main content

Module uti

Module uti 

Source
Expand description

Resolver-backed decoded views over typed generic models.

Typed generic structs (Uti, Utc, …) expose engine integers verbatim because the on-disk format does. This module layers a decoded view on top: callers borrow a TwoDaCache and ask for view = thing.snapshot(&mut cache), then query the view with semantics-bearing methods (e.g. view.is_weapon(), view.damage_bonuses()). The snapshot is built by composing a cheap projection with a per-scope resolution step; see UtiProjection / UtiSnapshot and Uti::project for the multi-scope path.

§Mod-friendliness

Decoding reads against the user’s actually-loaded 2DA tables via the Resolver the cache borrows. Properties whose PropertyName does not resolve in itempropdef.2da round-trip into DecodedProperty::Unknown with property_label = None; properties whose row exists but whose label is not yet typed surface as Unknown carrying the resolved label so consumers can still display something useful. Subtype u16 ids stay raw on every variant so mods that extend an existing property’s iprp_*.2da subtype range do not get downgraded to Unknown.

Structs§

UtiProjection
File-native projection of a Uti.
UtiSnapshot
Snapshot view over a Uti, resolved against a per-scope context.

Enums§

DecodedProperty
One decoded item-property entry.
PropertyKindFilter
Categorical filter for UtiSnapshot::has_property_kind.