Skip to main content

DecodedClass

Enum DecodedClass 

Source
pub enum DecodedClass {
    Soldier {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    Scout {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    Scoundrel {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    JediGuardian {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    JediConsular {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    JediSentinel {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    CombatDroid {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    ExpertDroid {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    Minion {
        class_id: i32,
        level: i16,
        powers: Vec<u16>,
    },
    Unknown {
        class_id: i32,
        class_label: Option<String>,
        level: i16,
        powers: Vec<u16>,
    },
}
Expand description

One decoded class entry from a UTC’s ClassList, with the typed variant chosen by matching the class_id row’s label cell in classes.2da.

Vanilla K1 carries nine class kinds; each gets its own typed variant. Mod-added or unrecognized rows surface as DecodedClass::Unknown carrying the raw class_id and the resolved label (when present) so callers can still display something useful. Dispatch is by label, not by raw class_id, so a mod that re-numbers a vanilla class still routes to its typed variant.

Every variant carries class_id (the raw integer the GFF stored; preserved so callers can recover the source-side row identity even after dispatch), level (the entry’s class_level), and powers (the per-entry Vec<u16> of force-power ids that resolve into spells.2da; left raw at this stage and typed in a later commit).

Variants§

§

Soldier

Vanilla classes.2da row label Soldier (vanilla row 0).

Fields

§class_id: i32

Raw class_id (the GFF integer the dispatch resolved from).

§level: i16

Raw class_level (entry’s contribution to the character’s total level).

§powers: Vec<u16>

Raw Vec<u16> of force-power ids indexing spells.2da.

§

Scout

Vanilla classes.2da row label Scout (vanilla row 1).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

Scoundrel

Vanilla classes.2da row label Scoundrel (vanilla row 2).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

JediGuardian

Vanilla classes.2da row label JediGuardian (vanilla row 3).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

JediConsular

Vanilla classes.2da row label JediConsular (vanilla row 4).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

JediSentinel

Vanilla classes.2da row label JediSentinel (vanilla row 5).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

CombatDroid

Vanilla classes.2da row label CombatDroid (vanilla row 6).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

ExpertDroid

Vanilla classes.2da row label ExpertDroid (vanilla row 7).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

Minion

Vanilla classes.2da row label Minion (vanilla row 8).

Fields

§class_id: i32

Raw class_id.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

§

Unknown

Class identity could not be matched to any typed variant. Carries the raw fields plus the resolved label when reachable so consumers can still display something useful for mod-added or out-of-range classes.

Fields

§class_id: i32

Raw class_id from the GFF.

§class_label: Option<String>

Resolved label cell from classes.2da at row class_id, or None when the table is unavailable, the row does not exist, or the label cell is missing.

§level: i16

Raw class_level.

§powers: Vec<u16>

Raw force-power ids.

Implementations§

Source§

impl DecodedClass

Source

pub fn class_id(&self) -> i32

Returns the raw class_id the dispatch resolved from, regardless of variant.

Source

pub fn level(&self) -> i16

Returns the entry’s class_level regardless of variant.

Source

pub fn powers(&self) -> &[u16]

Returns the entry’s raw force-power id slice regardless of variant.

Trait Implementations§

Source§

impl Clone for DecodedClass

Source§

fn clone(&self) -> DecodedClass

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for DecodedClass

Source§

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

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

impl PartialEq for DecodedClass

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Eq for DecodedClass

Source§

impl StructuralPartialEq for DecodedClass

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> StrictAs for T

Source§

fn strict_as<Dst>(self) -> Dst
where T: StrictCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> StrictCastFrom<Src> for Dst
where Src: StrictCast<Dst>,

Source§

fn strict_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.