Skip to main content

GitWaypoint

Struct GitWaypoint 

Source
pub struct GitWaypoint {
    pub tag: String,
    pub localized_name: GffLocalizedString,
    pub commandable: Option<bool>,
    pub map_note: Option<GitMapNote>,
    pub x_orientation: f32,
    pub y_orientation: f32,
    pub z_orientation: Option<f32>,
    pub object_id: Option<ObjectId>,
    pub x_position: f32,
    pub y_position: f32,
    pub z_position: f32,
}
Expand description

A waypoint placed in the area (struct type 5).

Waypoints are the one object list with a single form. LoadWaypoints ignores UseTemplates and always reads inline data, so there is no static / saved split here and Git::waypoints is a plain Vec.

§Dead fields this type does not model

TemplateResRef and LinkedTo are universal in a real install and read by nothing; docs/src/formats/gff/utw.md carries both the engine side and the corpus figures. docs/src/architecture.md’s projection rule uses this type’s TemplateResRef as its worked example of prevalence not being a criterion for modelling.

Tag, in contrast, is live and modelled. A waypoint is always inline with no blueprint behind it, so unlike GitDoor there is no second copy for the placement’s to lose to.

§The map note is one value, not a flag plus two optionals

The engine gates the note behind HasMapNote and then discards the whole trio unless MapNote itself was there, so neither half alone produces a note and there is no state to model between them.

Read the flag, not the text. Keying the note off MapNote alone passes against the fixture saves, where the two never disagree, and a larger corpus does not support it. docs/src/testing.md carries that as a worked example of a corpus too small to tell a relationship from a constant.

Fields§

§tag: String

Object tag (Tag).

§localized_name: GffLocalizedString

Displayed name (LocalizedName).

§commandable: Option<bool>

Accepts scripted commands (Commandable). Whether the object takes scripted commands (Commandable).

One of the base-object labels CSWSObject::LoadObjectState reads, and that read runs only on the save-instance branch, so a static placement never reaches it. SaveObjectState writes it whenever anything is saved, which is why every saved element carries it and no install element does. A waypoint is the one owner this reaches, because WaypointList has no static arm to keep it off.

§map_note: Option<GitMapNote>

Map note, when this waypoint carries one.

The two labels sit at this level rather than under one of their own, so the member is flattened. Whether it is there at all is a rule no attribute states: git.md has an absent MapNote discarding the whole HasMapNote/MapNoteEnabled/MapNote trio, and the flag is derived from this member on write so the two cannot disagree.

§x_orientation: f32

X orientation (XOrientation).

§y_orientation: f32

Y orientation (YOrientation).

§z_orientation: Option<f32>

Z orientation (ZOrientation). Z orientation (ZOrientation), which only a saved form carries.

§object_id: Option<ObjectId>

Runtime object ID (ObjectId). Runtime object id (ObjectId), which only a saved form carries.

The area-level dispatcher reads it once per element ahead of the static-versus-saved branch, so the engine reads it on both forms and the liveness below is right. What it does not do is author it: every element the engine saves carries one and no element the toolset shipped does. Held as the absence so writing a static placement back does not invent a runtime id for it.

§x_position: f32

X position (XPosition).

§y_position: f32

Y position (YPosition).

§z_position: f32

Z position (ZPosition).

Implementations§

Source§

impl GitWaypoint

Source

pub const SCHEMA: [Field; 15]

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 GitWaypoint

Source

pub fn read_element(structure: &GffStruct) -> Self

Reads one waypoint, resolving the map-note group.

Source

pub fn write_element(&self, structure: &mut GffStruct)

Writes one waypoint, deriving the flag from whether the note is there.

Trait Implementations§

Source§

impl Clone for GitWaypoint

Source§

fn clone(&self) -> GitWaypoint

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 GitWaypoint

Source§

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

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

impl Default for GitWaypoint

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 HasSchema for GitWaypoint

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 GitWaypoint

Source§

fn eq(&self, other: &GitWaypoint) -> 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 GitWaypoint

Auto Trait Implementations§

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.