Files
benilla-octo/crates/benilla-formats/examples/spell_interrupt.rs
T
SamandClaude Fable 5 6b980b9efb the player build: one binary that carries its content
- a player build ships beside the dev one — dev chords and probe surfaces go dark, and a gate enforces what a player can still reach, by medium not by module
- the binary carries its own shaders and its shipped UI, finds the WoW folder by itself, and keeps its local state in one benilla-config folder
- the glue screens get a capture shutter, and the engine stops depending on the protocol crate

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 18:18:02 +07:00

27 lines
1.1 KiB
Rust

//! Throwaway: print the interrupt-flag columns for named spell ids, so a claim about what
//! cancels a spell locally can be checked against the real shipped Spell.dbc.
fn main() -> anyhow::Result<()> {
let data = benilla_formats::wow_data().expect("no WoW install found (set $WOW_DATA)");
let mut chain = benilla_formats::open_chain(&data)?;
let catalog = benilla_formats::load_spell_catalog(&mut chain)?;
for arg in std::env::args().skip(1) {
let id: u32 = arg.parse()?;
let Some(d) = catalog.get(id) else {
println!("{id}: no row");
continue;
};
println!(
"{id} {:?}\n InterruptFlags={:#x} (movement bit 0x1 = {})\n AuraInterruptFlags={:#x} ChannelInterruptFlags={:#x}\n Attributes={:#x} AttributesEx={:#x} AttributesEx2={:#x}",
d.name,
d.interrupt_flags,
d.interrupt_flags & 0x1 != 0,
d.aura_interrupt_flags,
d.channel_interrupt_flags,
d.attributes,
d.attributes_ex,
d.attributes_ex2,
);
}
Ok(())
}