Skip to main content

Git

Struct Git 

Source
pub struct Git {
Show 15 fields pub area_map: Option<GitAreaMap>, pub current_weather: u8, pub weather_started: bool, pub waypoints: Vec<GitWaypoint>, pub encounters: Vec<GitEncounter>, pub area_effects: Vec<GitAreaEffect>, pub area_properties: Option<GitAreaProperties>, pub cameras: Vec<GitCamera>, pub creatures: GitCreatures, pub items: GitItems, pub doors: GitDoors, pub placeables: GitPlaceables, pub sounds: GitSounds, pub triggers: GitTriggers, pub stores: GitStores,
}
Expand description

Typed GIT model built from/to Gff data.

GIT is the area instance container. It places object instances by referencing templates and providing position/orientation data. All engine-read fields are typed; roundtrip is fully lossless for typed fields.

Fields§

§area_map: Option<GitAreaMap>

The explored-map bitmap (AreaMap), declared and not modelled.

Save-only. AreaMapData appears in every save fixture and in no module GIT the install ships, so writing the block unconditionally would put an explored map on an area nobody has walked.

§current_weather: u8

Current weather (CurrentWeather). If area is an interior, engine forcibly overrides to 0xFF.

§weather_started: bool

Weather started flag (WeatherStarted). If area is an interior, engine forcibly overrides to 0 (false).

§waypoints: Vec<GitWaypoint>

Waypoint instances (WaypointList).

§encounters: Vec<GitEncounter>

Encounter instances (Encounter List).

Read as static placements whatever UseTemplates says, which is wrong for a savegame GIT: a saved encounter comes back with an empty TemplateResRef rather than its spawned state. Encounters are the one object list still in that position. They are held back because there is nothing to model them against: every save in fixtures/saves/ has an empty Encounter List, and unlike area effects the engine’s saved encounter field set is not written down in docs/src/formats/gff/git.md either. Modelling it from LoadEncounters alone would ship a field set with no way to check it.

§area_effects: Vec<GitAreaEffect>

Area-of-effect instances (AreaEffectList).

§area_properties: Option<GitAreaProperties>

Area-level properties (AreaProperties).

§cameras: Vec<GitCamera>

Static cameras (CameraList). Engine load failure occurs if array contains 51 or more entries.

§creatures: GitCreatures

Creature List instances, in whichever form the file uses.

§items: GitItems

List instances, in whichever form the file uses.

§doors: GitDoors

Door List instances, in whichever form the file uses.

§placeables: GitPlaceables

Placeable List instances, in whichever form the file uses.

§sounds: GitSounds

SoundList instances, in whichever form the file uses.

§triggers: GitTriggers

TriggerList instances, in whichever form the file uses.

§stores: GitStores

StoreList instances, in whichever form the file uses.

Implementations§

Source§

impl Git

Source

pub const SCHEMA: [Field; 17]

This view’s schema, one entry per declared field.

Source

pub const PARTS: &'static [&'static [Field]]

This type’s schema in parts, which is what a container holding it references.

Own fields first, then one part per flattened child in the order they are declared.

Source

pub fn read_declared(root: &GffStruct) -> Self

Reads every declared field off root.

Absent fields take the entry’s own answer, so a fallback is derived from the declaration rather than restated beside it.

A field declaring a hand-written read is left at that answer for the view to overwrite.

Source

pub fn write_declared(&self, root: &mut GffStruct)

Writes every declared field onto root, leaving out the ones their entry says the engine’s own writer leaves out.

A field declaring a hand-written write is not touched here.

Source§

impl Git

Source

pub fn new() -> Self

Creates an empty GIT value.

Source

pub fn from_gff(gff: &Gff) -> Result<Self, GitError>

Builds typed GIT data from a parsed GFF container.

§Errors

Returns GitError::UnsupportedFileType when the container is not a GIT or a bare GFF .

Source

pub fn to_gff(&self) -> Gff

Converts this typed GIT value into a GFF container.

Trait Implementations§

Source§

impl Clone for Git

Source§

fn clone(&self) -> Git

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Git

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Git

Source§

fn default() -> Self

What a file omitting every label loads to, which is what makes an authored file land in a known state rather than at zero.

Source§

impl FromGff for Git

Source§

const MAGIC: [u8; 4]

The four bytes a container of this format carries. Read more
Source§

type Error = GitError

What reading this view out of a tree can fail with.
Source§

fn from_gff(gff: &Gff) -> Result<Self, Self::Error>

Reads the view. Anything the view does not model stays in gff. Read more
Source§

impl HasSchema for Git

Source§

fn schema() -> &'static [Field]

The root field schema for this resource type.
Source§

fn parts() -> &'static [&'static [Field]]

The same schema in parts, own fields first. Read more
Source§

impl PartialEq for Git

Source§

fn eq(&self, other: &Git) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Git

Auto Trait Implementations§

§

impl Freeze for Git

§

impl RefUnwindSafe for Git

§

impl Send for Git

§

impl Sync for Git

§

impl Unpin for Git

§

impl UnsafeUnpin for Git

§

impl UnwindSafe for Git

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.