Files
benilla-octo/crates/benilla-formats/tests/m2_emissive.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

26 lines
927 B
Rust

//! Difftest the M2 UNLIT (0x01) → `emissive` detection against the real GeneralLantern03: its glass
//! batch (ElwynnLantern01.blp, material flags 0x05) is self-lit; its body batch (flags 0x00) is not.
//! Skips (passes) when the client isn't present at `<repo>/WoW/Data`.
use benilla_formats::{load_m2_mesh, open_chain};
#[test]
fn lantern_glass_batch_is_emissive() {
let data = benilla_formats::wow_data_or_skip!();
let mut chain = open_chain(&data).expect("open vanilla patch chain");
let subs = load_m2_mesh(
&mut chain,
"World\\Generic\\Human\\Passive Doodads\\Lanterns\\GeneralLantern03.m2",
)
.expect("load GeneralLantern03");
assert!(
subs.iter().any(|s| s.emissive),
"the lantern has a self-lit (UNLIT 0x01) glass batch"
);
assert!(
subs.iter().any(|s| !s.emissive),
"the lantern body batch is lit normally (not emissive)"
);
}