commonlibsse_ng\re\m/
MagicSystem.rs

1use crate::re::BGSSoundDescriptorForm::BGSSoundDescriptorForm;
2use crate::re::BSString::BSString;
3use crate::re::MagicItem::MagicItem;
4
5#[commonlibsse_ng_derive_internal::ffi_enum]
6#[repr(u32)]
7#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8pub enum CannotCastReason {
9    OK = 0,
10    Magicka = 1,
11    PowerUsed = 2,
12    RangedUnderWater = 3,
13    MultipleCast = 4,
14    ItemCharge = 5,
15    CastWhileShouting = 6,
16    ShoutWhileCasting = 7,
17    ShoutWhileRecovering = 8,
18    CustomReasonNoStart = 100,
19}
20
21#[commonlibsse_ng_derive_internal::ffi_enum]
22#[repr(u32)]
23#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
24pub enum CastingSource {
25    LeftHand = 0,
26    RightHand = 1,
27    Other = 2,
28    Instant = 3,
29}
30
31#[commonlibsse_ng_derive_internal::ffi_enum]
32#[repr(u16)]
33#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
34pub enum CastingType {
35    ConstantEffect = 0,
36    FireAndForget = 1,
37    Concentration = 2,
38    Scroll = 3,
39}
40
41#[commonlibsse_ng_derive_internal::ffi_enum]
42#[repr(u32)]
43#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
44pub enum Delivery {
45    Self_ = 0, // `Self` is a reserved keyword
46    Touch = 1,
47    Aimed = 2,
48    TargetActor = 3,
49    TargetLocation = 4,
50    Total = 5,
51}
52
53#[commonlibsse_ng_derive_internal::ffi_enum]
54#[repr(u32)]
55#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
56pub enum SoundID {
57    DrawSheatheLPM = 0,
58    Charge = 1,
59    ReadyLoop = 2,
60    Release = 3,
61    CastLoop = 4,
62    Hit = 5,
63}
64
65/// The following discriminates are bitflags because they have the same value
66/// - Potion & Alchemy,
67/// - WortCraft & Ingredient
68#[commonlibsse_ng_derive_internal::to_bitflags]
69#[repr(u32)]
70#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
71pub enum SpellType {
72    Spell = 0,
73    Disease = 1,
74    Power = 2,
75    LesserPower = 3,
76    Ability = 4,
77    Poison = 5,
78    Enchantment = 6,
79    Potion = 7,
80    Alchemy = 7,
81    WortCraft = 8,
82    Ingredient = 8,
83    LeveledSpell = 9,
84    Addiction = 10,
85    VoicePower = 11,
86    StaffEnchantment = 12,
87    Scroll = 13,
88}
89
90#[repr(u32)]
91#[derive(Debug, Copy, Clone, PartialEq, Eq)]
92pub enum WardState {
93    None = 0,
94    Absorb = 1,
95    Break = 2,
96    Total = 3,
97}
98
99#[commonlibsse_ng_derive_internal::relocate_fn(se_id = 11295, ae_id = 11423)]
100pub fn GetCannotCastString(reason: CannotCastReason) -> *const u8 {}
101
102#[commonlibsse_ng_derive_internal::relocate_fn(se_id = 11294, ae_id = 11422)]
103pub fn GetMagicCasterTargetUpdateInterval() -> f32 {}
104
105#[commonlibsse_ng_derive_internal::relocate_fn(se_id = 11286, ae_id = 11411)]
106pub fn GetMagicFailureSound(ty: SpellType) -> *mut BGSSoundDescriptorForm {}
107
108#[commonlibsse_ng_derive_internal::relocate_fn(se_id = 11299, ae_id = 11427)]
109pub fn GetMagicItemDescription(
110    out: *mut BSString,
111    magic_item: *mut MagicItem,
112    begin_tag_format: *const u8,
113    end_tag_format: *const u8,
114) {
115}