diff --git a/crates/benilla-app/examples/addon_harness.rs b/crates/benilla-app/examples/addon_harness.rs index 21f18626..7047407d 100644 --- a/crates/benilla-app/examples/addon_harness.rs +++ b/crates/benilla-app/examples/addon_harness.rs @@ -99,7 +99,7 @@ fn surface_report(deep: bool, dump_path: Option) { } } - println!("\n SURFACE DIFF — our _G vs the captured 1.12 _G (decision 1189)"); + println!("\n SURFACE DIFF — our _G vs the captured 1.12 _G"); println!(" FrameXML digest : {}", addon_harness::framexml_digest()); println!(" reference names : {}", reference.len()); println!(" ours : {}", ours.len()); @@ -131,7 +131,7 @@ fn surface_report(deep: bool, dump_path: Option) { extra_by_kind.entry(kind).or_default().push(name); } println!( - "\n PUBLISHED BY US, ABSENT FROM 1.12 ({}) — a superset is not free (1189):", + "\n PUBLISHED BY US, ABSENT FROM 1.12 ({}) — a superset is not free:", extra.len() ); for (kind, names) in &extra_by_kind { @@ -160,7 +160,7 @@ fn surface_report(deep: bool, dump_path: Option) { println!( " ^ read these: an unprefixed verb 1.12 lacks is what `if SomeName then` finds.\n \ Most are our own UI's helpers (KeyBindings_*, Options*), which are only\n \ - a naming question — but a POST-1.12 API name here is 1189's hazard exactly, because an\n \ + a naming question — but a POST-1.12 API name here is the hazard, because an\n \ addon that feature-tests it takes a branch written for a client we are not." ); } @@ -411,7 +411,7 @@ fn main() { let strict = reports.iter().filter(|r| r.errors.is_empty()).count(); println!( " (…{} of those name a file their own package does not contain, which the reference \ - logs and carries on from; the pre-2155 column counted those as failures: {strict}/{})", + logs and carries on from; the strict column counts those as failures: {strict}/{})", loaded - strict, reports.len() ); @@ -704,11 +704,11 @@ fn main() { // library replicated into many addons inflates a row. println!("\n most-wanted missing METHODS — addons that NAME each as obj:Name(), and"); println!(" no widget answers. NOT a blocker list and NOT a build queue:"); - println!(" · a big number is usually ONE library file replicated (1207/1210), and"); + println!(" · a big number is usually ONE library file replicated, and"); println!( " · a third-party library's own method on its own object is not ours to write." ); - println!(" Open the call site before ranking it (decision 1240)."); + println!(" Open the call site before ranking it."); ranked(methods, 16); } @@ -896,8 +896,8 @@ fn main() { println!("\n DIFF vs {path}: REFUSED — the baseline is at a different tree"); println!(" baseline digest {was} this run {now}"); println!( - " A delta across two digests is not attributable to your change \ - (decision 1209).\n Re-take the baseline on this tree: \ + " A delta across two digests is not attributable \ + to your change.\n Re-take the baseline on this tree: \ --status , then re-run --diff." ); return; diff --git a/crates/benilla-app/src/addon_harness/mod.rs b/crates/benilla-app/src/addon_harness/mod.rs index 456055ff..4fccd95f 100644 --- a/crates/benilla-app/src/addon_harness/mod.rs +++ b/crates/benilla-app/src/addon_harness/mod.rs @@ -694,12 +694,12 @@ fn drive_ui_probe(script: &mut UiScript) -> Vec { -- HOVER. Nothing above puts a tooltip on screen, and a whole class of addon only runs -- there: hooks on GameTooltip's OnShow/OnHide, the FrameXML globals an addon replaces -- (GameTooltip_SetDefaultAnchor), and the ones that SCRAPE the line regions - -- (`GameTooltipTextLeft1:GetText()`). Decision 1220 fixed a raise squarely in that class - -- and this column could not see it, which is the reason this block exists. + -- (`GameTooltipTextLeft1:GetText()`). A raise squarely in that class is invisible to the + -- calls above, which is the reason this block exists. -- -- Each call is guarded on the global being a FUNCTION, not merely non-nil: an unguarded -- call to a missing FrameXML global would land in every addon's probe column as that - -- addon's fault, which is exactly the mis-attribution 1209 was written about. + -- addon's fault, which is exactly the mis-attribution the probe must never make. if GameTooltip and UIParent then if type(GameTooltip_SetDefaultAnchor) == "function" then try(function() GameTooltip_SetDefaultAnchor(GameTooltip, UIParent) end) @@ -3120,8 +3120,8 @@ mod dependency_tests { wants.absent_foreign_files, vec!["Interface/AddOns/NotInstalled/templates.xml".to_string()], "`..` is collapsed the way the client collapses it, and the RESOLVED path is what is \ - reported — the collapse is the interesting half. The path is INSTALL-relative since \ - 2155, which is the space the reference's file layer is actually handed: this exact \ + reported — the collapse is the interesting half. The path is INSTALL-relative, \ + which is the space the reference's file layer is actually handed: this exact \ shape is Auctioneer's, and its real neighbour resolves off the chain now." ); assert!( @@ -3718,7 +3718,7 @@ mod dependency_tests { assert_eq!( called_on("ScrollingMessageFrame"), vec!["ScrollingMessageFrame:SetInsertMode (on MessageFrame)".to_string()], - "the row 1228 could not print: the sibling that DOES answer it is named, because \ + "a missing verb's row names the sibling that DOES answer it, because \ `wire the kind` and `write the verb` are different jobs" ); assert!( diff --git a/crates/benilla-app/src/addon_harness/render_tests.rs b/crates/benilla-app/src/addon_harness/render_tests.rs index 7a639b3a..f222c5b8 100644 --- a/crates/benilla-app/src/addon_harness/render_tests.rs +++ b/crates/benilla-app/src/addon_harness/render_tests.rs @@ -141,7 +141,7 @@ fn the_render_column_can_fail() { /// `!OmniCC` paints through an anonymous frame parented to an existing cooldown, an overlay; /// Bagnon builds its own window of item-slot buttons. #[test] -fn the_directors_two_verified_addons_come_out_on_opposite_sides() { +fn omnicc_and_bagnon_come_out_on_opposite_sides() { benilla_formats::wow_data_or_skip!(); // A skip the gate can refuse (`benilla_formats::install`). let corpus = benilla_formats::addon_corpus_or_skip!(); @@ -162,7 +162,7 @@ fn the_directors_two_verified_addons_come_out_on_opposite_sides() { assert_eq!( row("!OmniCC").render.drew(), Drew::Overlay, - "!OmniCC's countdown text is on the director's screen; it paints via an ANONYMOUS frame \ + "!OmniCC's countdown text draws in the live client; it paints via an ANONYMOUS frame \ parented to a cooldown of ours, which is precisely what a name-based check cannot see" ); @@ -177,7 +177,7 @@ fn the_directors_two_verified_addons_come_out_on_opposite_sides() { .frames .iter() .any(|f| f.starts_with("BagnonItem")), - "…and the slots are what it draws — the exact thing the director could not see: {:?}", + "…and the slots are what it draws — the item slots a player sees: {:?}", row("Bagnon").render.frames ); } diff --git a/crates/benilla-app/src/addon_harness/use_probe_tests.rs b/crates/benilla-app/src/addon_harness/use_probe_tests.rs index db756f47..baf4b953 100644 --- a/crates/benilla-app/src/addon_harness/use_probe_tests.rs +++ b/crates/benilla-app/src/addon_harness/use_probe_tests.rs @@ -202,7 +202,7 @@ fn the_use_column_can_fail() { /// so it is `untouched`. Bagnon's item slots must be reachable (`driven >= 1` on a `BagnonItem*` /// frame); whether they raise is not asserted here. #[test] -fn the_directors_two_verified_addons_are_reachable_and_omnicc_is_not_broken() { +fn bagnon_is_reachable_and_omnicc_is_not_broken() { benilla_formats::wow_data_or_skip!(); // A skip the gate can refuse (`benilla_formats::install`). let corpus = benilla_formats::addon_corpus_or_skip!(); @@ -222,7 +222,7 @@ fn the_directors_two_verified_addons_are_reachable_and_omnicc_is_not_broken() { assert_ne!( omni.used.verdict(), Used::Raised, - "!OmniCC is on the director's screen and works; a column that calls it broken is broken \ + "!OmniCC draws in the live client and works; a column that calls it broken is broken \ itself: {:?}", omni.used.errors ); @@ -230,7 +230,7 @@ fn the_directors_two_verified_addons_are_reachable_and_omnicc_is_not_broken() { let bagnon = row("Bagnon"); assert!( bagnon.used.driven >= 1, - "Bagnon draws bag slots the director can put a cursor on; the probe must be able to reach \ + "Bagnon draws bag slots a player can put a cursor on; the probe must be able to reach \ at least one (drew={:?} touchable={})", bagnon.render.frames, bagnon.used.touchable @@ -241,7 +241,7 @@ fn the_directors_two_verified_addons_are_reachable_and_omnicc_is_not_broken() { .frames .iter() .any(|f| f.starts_with("BagnonItem")), - "…and the thing it touched must be a SLOT — the exact widget the director hovered: {:?}", + "…and the thing it touched must be a SLOT — the exact widget a player hovers: {:?}", bagnon.used.frames ); } diff --git a/crates/benilla-app/src/aura_visual.rs b/crates/benilla-app/src/aura_visual.rs index 177ace8b..7ae57ab1 100644 --- a/crates/benilla-app/src/aura_visual.rs +++ b/crates/benilla-app/src/aura_visual.rs @@ -394,7 +394,7 @@ fn trace_edge(what: &str, entity: Entity, spell_id: u32, n: &AuraNodes) { benilla_assets::trace::line( "aur", &format!( - "{what} e={entity} spell={spell_id} alpha={alphas:?}{tint}{rate} base {:.2} cur {:.2} target {:.2}", + "{what} e={entity} spell={spell_id} alpha={alphas:?}{tint}{rate} -> base {:.2} cur {:.2} target {:.2}", n.base, n.current, n.target() diff --git a/crates/benilla-app/src/bindings.rs b/crates/benilla-app/src/bindings.rs index 045f9645..4281c87c 100644 --- a/crates/benilla-app/src/bindings.rs +++ b/crates/benilla-app/src/bindings.rs @@ -1020,7 +1020,7 @@ mod tests { app.update(); assert!( state(&app).pressed(cmd::MOVE_FORWARD), - "holding W and opening the chat box keeps you running (2196)" + "holding W and opening the chat box keeps you running" ); assert_eq!( lua_count(&app, "PROBE_UP"), @@ -1231,7 +1231,7 @@ mod tests { app.update(); assert!( state(&app).pressed(cmd::MOVE_FORWARD), - "the first repeat after re-activation re-latches (2204)" + "the first repeat after re-activation re-latches" ); } @@ -1282,7 +1282,7 @@ mod tests { app.update(); assert!( state(&app).pressed(cmd::MOVE_FORWARD), - "SHIFT-W falls back to W — the whole point of 1142" + "an unbound SHIFT-W falls back to W, the modifier dropped" ); // It unlatches on the base key with the modifier still down (the reference replays the // press-time chord at key-up, `0x483bd0`; latching the resolved command is equivalent). @@ -1302,7 +1302,7 @@ mod tests { app.update(); assert!( state(&app).fired(cmd::TOGGLE_UI), - "ALT-Z is TOGGLEUI (0870)" + "ALT-Z is TOGGLEUI: the exact chord probes first" ); assert!(!state(&app).fired(cmd::TOGGLE_SHEATH)); // CTRL-ALT-Z fires nothing: the single strip drops the leftmost modifier (`ALT-CTRL-Z` @@ -1454,7 +1454,7 @@ mod tests { app.update(); assert!( state(&app).pressed(cmd::MOVE_FORWARD), - "the frame ate the toggle key; you are still running (2196)" + "the frame ate the toggle key; you are still running" ); // The eaten key loses its binding... @@ -1613,7 +1613,7 @@ mod tests { assert!(open(&app, 0), "B opens the backpack"); assert!( !open(&app, 2), - "B does NOT open the equipped bag — this is the bug 1494 fixes" + "B does NOT open the equipped bag — TOGGLEBACKPACK opens the backpack alone" ); // B again: bag 0 is open, so this is the close arm. diff --git a/crates/benilla-app/src/bindings/commands.rs b/crates/benilla-app/src/bindings/commands.rs index 84876fc9..76c2459b 100644 --- a/crates/benilla-app/src/bindings/commands.rs +++ b/crates/benilla-app/src/bindings/commands.rs @@ -1734,47 +1734,47 @@ pub(crate) static ABSENT: &[Absent] = &[ absent!( "TOGGLESTATS", ["ToggleStats"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLETRIS", ["ToggleTris"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLEPORTALS", ["TogglePortals"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLECOLLISION", ["ToggleCollision"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLECOLLISIONDISPLAY", ["ToggleCollisionDisplay"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLEPLAYERBOUNDS", ["TogglePlayerBounds"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLEPERFORMANCEDISPLAY", ["TogglePerformanceDisplay"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "TOGGLEPERFORMANCEVALUES", ["TogglePerformanceValues"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), absent!( "RESETPERFORMANCEVALUES", ["ResetPerformanceValues"], - "a dev-plane instrument (1043)" + "a dev-plane instrument on a dev chord" ), // ── The mouse's own three (hidden) ────────────────────────────────────────────────── // The reference's mouse-look bindings (BUTTON2, BUTTON1, CTRL-BUTTON1), hidden from the @@ -1909,7 +1909,7 @@ mod tests { s.run_on_up(), reference_run_on_up, "{}: runOnUp disagrees with the install's Bindings.xml — that flag decides \ - whether a press of this command delivers a release half (1295)", + whether a press of this command delivers a release half", s.name ); let ours: Vec<&str> = [s.d1, s.d2].into_iter().flatten().collect(); @@ -2045,7 +2045,7 @@ mod tests { for shipped in ["ToggleCharacter", "ChangeActionBarPage", "ShowUIPanel"] { assert!( defined.contains(shipped), - "the assets/ui scan missed `{shipped}`" + "the scan missed `{shipped}`, a host registration or a stock chain global" ); } // Stock ContainerFrame.lua's, sourced off the chain by `benilla.toc`. diff --git a/crates/benilla-app/src/bindings/store.rs b/crates/benilla-app/src/bindings/store.rs index 9995d7c1..f7a8a0de 100644 --- a/crates/benilla-app/src/bindings/store.rs +++ b/crates/benilla-app/src/bindings/store.rs @@ -23,7 +23,7 @@ pub(crate) fn to_diff(snapshot: &[(String, Vec)]) -> String { .iter() .map(|s| (s.name, [s.d1, s.d2].into_iter().flatten().collect())) .collect(); - let mut out = String::from("# benilla key bindings (decision 0997) — diff vs defaults\n"); + let mut out = String::from("# benilla key bindings — diff vs defaults\n"); for (name, keys) in snapshot { let is_default = defaults .get(name.as_str()) diff --git a/crates/benilla-app/src/capture/mod.rs b/crates/benilla-app/src/capture/mod.rs index d057af43..c2a8a0bd 100644 --- a/crates/benilla-app/src/capture/mod.rs +++ b/crates/benilla-app/src/capture/mod.rs @@ -837,7 +837,7 @@ fn drive_capture( { error!( "capture: settled image is EMPTY — every color channel is zero; the \ - scene rendered nothing (1373)" + scene rendered nothing" ); } } diff --git a/crates/benilla-app/src/capture/probe_binder.rs b/crates/benilla-app/src/capture/probe_binder.rs index aaf7a32e..26da0df7 100644 --- a/crates/benilla-app/src/capture/probe_binder.rs +++ b/crates/benilla-app/src/capture/probe_binder.rs @@ -329,8 +329,8 @@ fn binder_probe( error!( "PROBE_BINDER: FAIL (5 confirm) — no answered question within \ {CONFIRM_TIMEOUT_SECS}s of the select: BinderState pending={:?} (wanted \ - {innkeeper:#x}), CONFIRM_BINDER fired={fired}, arg1={area:?}. Before decision \ - 1331 the packet had no parse arm at all and fell through to \ + {innkeeper:#x}), CONFIRM_BINDER fired={fired}, arg1={area:?}. A packet with \ + no parse arm at all falls through to \ ServerPacket::Other — that is what this reading looks like.", binder.npc() ); @@ -458,8 +458,8 @@ fn assert_icon_and_select( if ty == ICON_TYPE_REGRESSION { error!( "PROBE_BINDER: FAIL (3 icon) — the innkeeper's row {:?} (wire icon={ICON_INNKEEPER}) \ - maps to {ICON_TYPE_REGRESSION:?}, the chat bubble. THIS IS THE B249 REGRESSION: \ - decision 1331's table must index byte 5 to {ICON_TYPE_BINDER:?}.", + maps to {ICON_TYPE_REGRESSION:?}, the chat bubble. THIS IS THE ICON REGRESSION: \ + `ui_gossip`'s icon table must index byte 5 to {ICON_TYPE_BINDER:?}.", opt.message ); probe.fails += 1; diff --git a/crates/benilla-app/src/capture/probe_book.rs b/crates/benilla-app/src/capture/probe_book.rs index 7ca25be5..1add8a07 100644 --- a/crates/benilla-app/src/capture/probe_book.rs +++ b/crates/benilla-app/src/capture/probe_book.rs @@ -269,7 +269,7 @@ fn book_probe( probe.closed.push(sample); if probe.closed.len() >= SAMPLE_FRAMES { let guid = probe.plaque.unwrap_or_default(); - info!("PROBE_BOOK: opening the reader on {guid:#x} (the right-click's own route — `ItemTextOpen::open_pages`, decision 1105)"); + info!("PROBE_BOOK: opening the reader on {guid:#x} (the right-click's own route — `ItemTextOpen::open_pages`)"); reader.open_pages(guid); probe.phase = Phase::WaitReady { since: now }; } diff --git a/crates/benilla-app/src/capture/probe_charter.rs b/crates/benilla-app/src/capture/probe_charter.rs index b88761bb..8cbb8d03 100644 --- a/crates/benilla-app/src/capture/probe_charter.rs +++ b/crates/benilla-app/src/capture/probe_charter.rs @@ -572,7 +572,7 @@ fn charter_probe( format!( "the registrar opened on {npc:#x} but GetGuildCharterCost() reads {cost}, \ not {CHARTER_COST_COPPER} (vmangos GUILD_CHARTER_COST, \ - PetitionsHandler.cpp:39) — the showlist row's charterCost is not what \ + PetitionsHandler.cpp:38) — the showlist row's charterCost is not what \ the getter reads, or the visible-row `&1` rule picked the wrong row" ), ); @@ -585,8 +585,8 @@ fn charter_probe( "no registrar window within {REGISTRAR_TIMEOUT_SECS}s of the select: \ GuildRegistrarState npc={:?} (wanted {npc:#x}), \ GuildRegistrarFrame:IsVisible()={visible}, GetGuildCharterCost()={cost}. \ - Before decision 1672 SMSG_PETITION_SHOWLIST had no parse arm at all and \ - fell through to ServerPacket::Other — that is what this reading looks \ + An SMSG_PETITION_SHOWLIST with no parse arm at all \ + falls through to ServerPacket::Other — that is what this reading looks \ like. Lines seen: {:?}", registrar.npc(), probe_lines(&script) @@ -803,8 +803,8 @@ fn charter_probe( click: PetitionFrame:IsVisible()={visible}, petitionType={kind:?}, \ isOriginator={originator}, GetNumPetitionNames()={names}. Either the \ item-use fork never reached ItemUseRoute::ShowPetition (a charter that \ - falls through to `Nothing` sends nothing at all — the pre-1672 \ - behaviour) or the answer never became a window. Lines seen: {:?}", + falls through to `Nothing` sends nothing at all — a silent \ + failure) or the answer never became a window. Lines seen: {:?}", probe_lines(&script) ), ); @@ -1086,8 +1086,8 @@ fn assert_icon_and_select( "icon", format!( "the charter row {:?} (wire icon={ICON_PETITION}) maps to \ - {ICON_TYPE_REGRESSION:?}, the chat bubble. That is B249's regression one row \ - over: decision 1335's table must index byte 7 to {ICON_TYPE_PETITION:?}", + {ICON_TYPE_REGRESSION:?}, the chat bubble: the binder's icon regression \ + one row over: `ui_gossip`'s table must index byte 7 to {ICON_TYPE_PETITION:?}", opt.message ), ); diff --git a/crates/benilla-app/src/capture/probe_chest.rs b/crates/benilla-app/src/capture/probe_chest.rs index 42d2ede6..212a03e4 100644 --- a/crates/benilla-app/src/capture/probe_chest.rs +++ b/crates/benilla-app/src/capture/probe_chest.rs @@ -193,7 +193,7 @@ fn chest_probe( Phase::Wait => { let [x, y, z, map] = target(); info!( - "PROBE_CHEST: heading to the chest ({x} {y} {z} map {map}) — B84's object, \ + "PROBE_CHEST: heading to the chest ({x} {y} {z} map {map}) — the kneel target, \ GameObject type {GO_TYPE_CHEST}" ); let _ = net.0.send(ClientCommand::Chat { diff --git a/crates/benilla-app/src/capture/probe_env.rs b/crates/benilla-app/src/capture/probe_env.rs index 609c9d10..0a11c9a9 100644 --- a/crates/benilla-app/src/capture/probe_env.rs +++ b/crates/benilla-app/src/capture/probe_env.rs @@ -95,7 +95,7 @@ pub(crate) const PROBE_VARS: &[ProbeVar] = &[ }, ProbeVar { name: "WOW_PROBE_HOVER_STEP", - purpose: " — seconds per pointer move (default 0.25; ~0.016 sweeps at frame rate, the director's gesture)", + purpose: " — seconds per pointer move (default 0.25; ~0.016 sweeps at frame rate, like a real hand)", wall_clock: false, }, ProbeVar { @@ -239,7 +239,7 @@ pub(crate) const PROBE_VARS: &[ProbeVar] = &[ }, ProbeVar { name: "WOW_PROBE_BOOK", - purpose: "1 — teleport to the Old Town plaque and measure what the item-text reader costs per frame, closed vs open (B240)", + purpose: "1 — teleport to the Old Town plaque and measure what the item-text reader costs per frame, closed vs open", wall_clock: true, }, ProbeVar { @@ -292,15 +292,15 @@ pub(crate) const PROBE_NAMES: &[(&str, &str)] = &[ ), ( "partner", - "the second client that says yes: auto-accept every group invite and duel challenge (0434/0637)", + "the second client that says yes: auto-accept every group invite and duel challenge", ), ( "crossing", - "board a cross-continent boat and report the map seam surviving (0455)", + "board a cross-continent boat and report the map seam surviving", ), ( "taxi", - "open the flight-master menu on the wire and ride Stormwind → Sentinel Hill to a verdict (0484)", + "open the flight-master menu on the wire and ride Stormwind → Sentinel Hill to a verdict", ), ( "guardpoi", @@ -319,11 +319,11 @@ pub(crate) fn wall_clock_vars() -> impl Iterator { /// `WOW_PROBE=list`: prints the registry, one variable per line, then the named values. pub(crate) fn print() { - println!("The probe fleet's environment (capture::probe_env, decision 2265 §A5)."); + println!("The probe fleet's environment (capture::probe_env)."); println!( "wall-clock: the variable schedules on elapsed real time and arms the un-occludable probe" ); - println!("window (ProbeFocusPlugin, decision 0906) — covered, such a run drops to ~1 fps and"); + println!("window (ProbeFocusPlugin) — covered, such a run drops to ~1 fps and"); println!("executes the wrong script."); println!(); println!("{:<26} {:<10} PURPOSE", "VARIABLE", "WALL-CLOCK"); diff --git a/crates/benilla-app/src/capture/probe_gm_ticket.rs b/crates/benilla-app/src/capture/probe_gm_ticket.rs index 86e87612..9fbf69a3 100644 --- a/crates/benilla-app/src/capture/probe_gm_ticket.rs +++ b/crates/benilla-app/src/capture/probe_gm_ticket.rs @@ -533,7 +533,7 @@ fn gm_ticket_probe( {ANSWER_TIMEOUT_SECS}s. Wanted arg2 == {want:?}; answers seen after the \ baseline: {:?}. leading-byte-swallowed={stray} — if that is true, the server \ read our category byte as the first character of the text, which is the \ - cmangos-classic behaviour decision 1673 records.", + cmangos-classic behaviour.", &seen[baseline.min(seen.len())..] ); probe.fails += 1; diff --git a/crates/benilla-app/src/capture/probe_guard_poi.rs b/crates/benilla-app/src/capture/probe_guard_poi.rs index fbaee156..c47611de 100644 --- a/crates/benilla-app/src/capture/probe_guard_poi.rs +++ b/crates/benilla-app/src/capture/probe_guard_poi.rs @@ -179,7 +179,7 @@ fn guard_poi_probe( format!("POIIcons cell {} at its true spot", poi.icon) } true => "nothing (in range, no Flags&2)".to_string(), - false => "the gold guide arrow on the rim, pointing at it (1519)".to_string(), + false => "the gold guide arrow on the rim, pointing at it".to_string(), }; info!( "PROBE guardpoi: marker \"{}\" at ({:.1}, {:.1}) icon {} flags {} — {d:.1} yd away \ diff --git a/crates/benilla-app/src/capture/probe_mail.rs b/crates/benilla-app/src/capture/probe_mail.rs index 609efe55..bc823497 100644 --- a/crates/benilla-app/src/capture/probe_mail.rs +++ b/crates/benilla-app/src/capture/probe_mail.rs @@ -247,7 +247,10 @@ fn mail_probe( && tf.translation.distance(me) < MAILBOX_SCAN_RANGE }); if let Some((guid, ..)) = mailbox { - info!("PROBE_MAIL: mailbox {:#x} in range — clicking (local open, no packet, decision 0544/0548)", guid.0); + info!( + "PROBE_MAIL: mailbox {:#x} in range — clicking (local open, no packet)", + guid.0 + ); mail.click(guid.0); probe.phase = Phase::WaitList { clicked_at: now }; } else if now - sent_at > SCAN_TIMEOUT_SECS { diff --git a/crates/benilla-app/src/capture/probes/mod.rs b/crates/benilla-app/src/capture/probes/mod.rs index ea96c290..6a8cfb21 100644 --- a/crates/benilla-app/src/capture/probes/mod.rs +++ b/crates/benilla-app/src/capture/probes/mod.rs @@ -155,7 +155,7 @@ mod tests { offenders.is_empty(), "the probe harness must schedule on the wall clock (`ProbeClock`), not the virtual \ clock — it is clamped to max_delta (250 ms), so any hitching leg silently drifts every \ - `` knob out from under the operator (decision 0789). Offenders:\n {}", + `` knob out from under the operator. Offenders:\n {}", offenders.join("\n "), ); assert!( diff --git a/crates/benilla-app/src/char_create/mod.rs b/crates/benilla-app/src/char_create/mod.rs index 075ca2f9..0a15c7c2 100644 --- a/crates/benilla-app/src/char_create/mod.rs +++ b/crates/benilla-app/src/char_create/mod.rs @@ -784,8 +784,8 @@ mod tests { assert!(locked.contains(&CreateAction::Gender(1)), "female"); assert!( locked.contains(&CreateAction::ClassSlot(6)), - "mage is slot 6 of [1,2,3,4,5,7,8,9,11] — and it is the mage icon the director saw \ - unmarked" + "mage is slot 6 of [1,2,3,4,5,7,8,9,11] — the mage icon itself must carry the lock, \ + not sit unmarked" ); // Moving the selection moves the lock, never lights a second icon. diff --git a/crates/benilla-app/src/char_select/addons.rs b/crates/benilla-app/src/char_select/addons.rs index bae7ad50..d20f0196 100644 --- a/crates/benilla-app/src/char_select/addons.rs +++ b/crates/benilla-app/src/char_select/addons.rs @@ -1600,8 +1600,8 @@ mod tests { p.verdict(5).token().as_deref(), Some("INTERFACE_VERSION"), "a manifest with NO `## Interface` parses as 0 and IS out of date — the record ctor \ - leaves [rec+0x1c]=0 and the gate compares it like any other value (decision 1292, \ - byte-verified; supersedes 1191 §6's silent-is-current reading)" + leaves [rec+0x1c]=0 and the gate compares it like any other value (byte-verified: \ + a missing line is never read as current)" ); // Force-load erases the refusal (reason 7 written, then reset to 0), so a ticked box diff --git a/crates/benilla-app/src/creature_anim/driver/tests.rs b/crates/benilla-app/src/creature_anim/driver/tests.rs index 16c3903f..a48c5090 100644 --- a/crates/benilla-app/src/creature_anim/driver/tests.rs +++ b/crates/benilla-app/src/creature_anim/driver/tests.rs @@ -351,7 +351,7 @@ fn relaxed_base_arms_roll_variations_and_the_shuffle_drives_them() { assert_eq!( gait(&app), Some(11), - "the settle does not release the shuffle (1655)" + "the settle does not release the shuffle" ); for _ in 0..6 { @@ -1055,7 +1055,7 @@ fn the_swim_relatch_holds_the_kick_but_a_ground_cut_freezes_it() { assert_eq!( drv(&app), super::super::select::Mode::Entering(super::super::select::Special::Jump), - "the re-latch holds the kick (0517) — the swim gait waits for its end" + "the re-latch holds the kick — the swim gait waits for its end" ); let player = app.world().entity(unit).get::().unwrap(); let kick = player @@ -1085,7 +1085,7 @@ fn the_swim_relatch_holds_the_kick_but_a_ground_cut_freezes_it() { assert_eq!( kick.speed(), 0.0, - "the ground cut is FROZEN mid-pose (0503)" + "the ground cut is FROZEN mid-pose: its speed is 0" ); } @@ -2566,7 +2566,7 @@ fn the_mount_transition_takes_bone_0_back_from_a_full_body_one_shot() { assert_eq!( playing(&app), Some(MOUNT), - "B203: the mount arm displaces the cast clip — it does not wait for it to finish" + "the mount arm displaces the cast clip — it does not wait for it to finish" ); app.update(); @@ -3050,12 +3050,12 @@ fn every_shot_of_a_volley_re_arms_the_fire_clip_through_the_emote_lane() { assert_eq!( mode(&app), FIRING, - "…and the base never recomputed out of it" + "…and the driver has not seen the completion yet: the base is still the swing" ); assert_eq!( gait(&app), None, - "…so the pull was not replayed between shots" + "…so no gait is picked yet; the recompute and the re-pull come a frame later" ); } @@ -3945,7 +3945,7 @@ mod base_anim_lock { .get::() .unwrap() .started_anim, - "the bracket walked with its play declined — nothing started, so nothing downstream may read a play out of the mode change (the flinch's eviction, 2076's trail edge)" + "the bracket's play was declined: nothing started for the flinch or the trail to read" ); advance(&mut app, 16); assert_eq!( diff --git a/crates/benilla-app/src/creature_anim/lod.rs b/crates/benilla-app/src/creature_anim/lod.rs index 2c8be1bc..c374c9d1 100644 --- a/crates/benilla-app/src/creature_anim/lod.rs +++ b/crates/benilla-app/src/creature_anim/lod.rs @@ -354,7 +354,7 @@ mod tests { } assert_eq!( fired_parked, 0, - "an unflagged parked rig's event keyframes are not scanned (1482)" + "an unflagged parked rig's event keyframes are not scanned" ); assert!(fired_twin > 0, "the live twin keeps firing — the control"); assert_eq!( diff --git a/crates/benilla-app/src/creature_anim/spell_visual/tests.rs b/crates/benilla-app/src/creature_anim/spell_visual/tests.rs index 105ad105..3699c56d 100644 --- a/crates/benilla-app/src/creature_anim/spell_visual/tests.rs +++ b/crates/benilla-app/src/creature_anim/spell_visual/tests.rs @@ -436,7 +436,7 @@ fn ranged_spells_merge_the_weapon_visual_into_their_empty_slots() { assert_eq!( (multi.precast, multi.cast), (171, 172), - "the empty body-kit slots fill from the weapon — the missing draw/release (B153)" + "the empty body-kit slots fill from the weapon — else the draw/release is missing" ); assert_eq!( (multi.impact, multi.missile_model, multi.missile_attach), diff --git a/crates/benilla-app/src/cvars.rs b/crates/benilla-app/src/cvars.rs index 17f00d63..f44acc4a 100644 --- a/crates/benilla-app/src/cvars.rs +++ b/crates/benilla-app/src/cvars.rs @@ -153,7 +153,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ crate::realmlist::CVAR_REALMLIST, crate::realmlist::DEFAULT_REALMLIST, "us.logon.worldofwarcraft.com:3724", - "1667: that host has not resolved since 2019, so shipping it makes every first launch a \ + "that host has not resolved since 2019, so shipping it makes every first launch a \ DNS failure; benilla dials the machine it is running on", ), // `autoClearAFK` (`0x5e24d4`, "1" `0x82e748`, handle `[0xc4d68c]` set at `0x5e24ef`, read at @@ -183,9 +183,9 @@ pub(crate) const REGISTERED: &[Registered] = &[ "SoundReverb", "0", "1", - "1153: the reference's reverb is EAX-over-hardware and that hardware has not existed \ - since Vista, so \"1\" would ship audio the real client has never actually produced \ - (B236)", + "the reference's reverb is EAX-over-hardware, and that hardware has not existed since \ + Vista, so \"1\" would ship audio the real client has never actually produced on any \ + machine a player runs today", ), // FMOD 3's mix-ahead buffer in ms (`0x4571ca`, flags 2: read once at sound init); here it sizes // the render thread's ring ahead of the IO callback (`sound::output`). `0x457520` registers @@ -199,8 +199,8 @@ pub(crate) const REGISTERED: &[Registered] = &[ ours( "SoundOutputLimiter", "1", - "1551: benilla's own — the reference's FMOD 3 mix needs no such DSP; we sum into f32 \ - behind a hard clamp, and every WoW SFX is mastered to full scale", + "benilla's own — the reference sums at full scale and clips; every WoW SFX is mastered \ + to full scale, so overlapping kits need a limiter to keep from distorting", ), overridden( "uiScale", @@ -238,7 +238,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "autoSelfCast", "1", "0", - "1745: with it off, an unbindable friendly cast falls into the reference's \ + "with it off, an unbindable friendly cast falls into the reference's \ targeting-cursor machine, which is unmodeled — leaving no path at all. Flip when that \ machine lands", ), @@ -312,7 +312,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ ours( "autoLootDefault", "0", - "0961: 1.12 has no auto-loot CVar at all — vanilla offers only the shift gesture, so OFF \ + "1.12 has no auto-loot CVar at all — vanilla offers only the shift gesture, so OFF \ IS the reference's own behaviour; the spelling is era's", ), // The overhead-name gates, registered at `0x6c7470` into mask `0xce8720`: `UnitNamePlayer` @@ -346,7 +346,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "frillDensity", "32", "16", - "1649/1804: the reference's registered 16 is stop 0 and its post-`hwDetect` 24 is on no \ + "the reference's registered 16 is stop 0 and its post-`hwDetect` 24 is on no \ stop at all, so every stop diverges; Medium (32) is the nearest one no sparser than a \ fresh install, and erring sparse is the worse failure for ground cover", ), @@ -504,7 +504,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "gxApi", "", "direct3d", - "2151: descriptive, not a selector — benilla renders through wgpu, which has no D3D9 \ + "descriptive, not a selector — benilla renders through wgpu, which has no D3D9 \ backend and no chooser; the value is the live adapter's own and is never persisted", ) .latched(), @@ -524,7 +524,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "gxResolution", "1600x900", "640x480", - "1627: narrowed to the WINDOWED size only — fullscreen is the monitor's own and we expose \ + "narrowed to the WINDOWED size only — fullscreen is the monitor's own and we expose \ no mode list, and 640x480 is not a window anyone would ship a client at", ) .latched(), @@ -533,7 +533,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ ours( "boothHalfRate", "1", - "1444/1607: benilla's own — the reference draws its doll inside the main pass and has no \ + "benilla's own — the reference draws its doll inside the main pass and has no \ second view to rate-limit", ), // `gxMultisample` (`0x63a950`, flags 3). The reference formats its default from field 21 of the @@ -548,7 +548,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "gxColorBits", "32", "16", - "1643: these describe, they do not steer — the pair is our swapchain's own, and every \ + "these describe, they do not steer — the pair is our swapchain's own, and every \ format `MsaaFormats` publishes carries it", ) .latched(), @@ -556,7 +556,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "gxDepthBits", "32", "16", - "1643: as `gxColorBits` — the depth half of the same descriptive pair", + "as `gxColorBits` — the depth half of the same descriptive pair", ) .latched(), // `trilinear` and `anisotropic`, over `benilla_assets::TexFilterSetting` (`tex_filter.rs` @@ -572,7 +572,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "trilinear", "1", "0", - "1645: `hwDetect` sets it from `VideoHardware.dbc` field 9 before the first frame, and \ + "`hwDetect` sets it from `VideoHardware.dbc` field 9 before the first frame, and \ that field is 1 on both fallback rows an unlisted modern GPU can reach — measured on the \ reference's own `Logs/gx.log` (`videoID: 170`)", ), @@ -587,7 +587,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ "weatherDensity", "3", "2", - "2181: every precipitation rate in `benilla-world`'s own precipitation module was \ + "every precipitation rate in `benilla-world`'s own precipitation module was \ derived and graded against the reference install's own apitrace captures, and that \ install runs \ `SET weatherDensity \"3\"` (K = 1.0) — so 3 is the value a benilla-vs-reference \ @@ -608,7 +608,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ ours( "renderScale", "1", - "1639: benilla's own — the reference has no off-screen buffer to hang a resolution dial \ + "benilla's own — the reference has no off-screen buffer to hang a resolution dial \ on; its nearest equivalent, `gxResolution`, drops the interface with the world", ), // benilla's own: `/console fpsJournal 1` appends a per-second row of position, frame cost and @@ -617,7 +617,7 @@ pub(crate) const REGISTERED: &[Registered] = &[ ours( "fpsJournal", "0", - "2008: benilla's own — 1.12 has no player-side perf log; its nearest thing is the \ + "benilla's own — 1.12 has no player-side perf log; its nearest thing is the \ Ctrl+R framerate label, a number with no file behind it", ), // `lastCharacterIndex` (`0x402d93`, "0" `0x82e570`, category 4, handle `[0x882674]`), help @@ -1385,7 +1385,7 @@ pub(crate) fn fold_dying_vm_cvars(world: &mut World) { /// The file's header comment. const HEADER: &str = "\ -# benilla local config (decision 0954) — CVar values that moved off their defaults. +# benilla local config — CVar values that moved off their defaults. # Managed by the client; hand edits are read on next launch and preserved on save. "; @@ -1559,12 +1559,12 @@ mod tests { ); assert!( !sound.background_sound, - "the reference goes quiet in the background and offers no way out (decision 1847)" + "the reference goes quiet in the background and offers no way out" ); assert_eq!(d["SoundReverb"] != 0.0, sound.reverb); assert_eq!(d["SoundOutputLimiter"] != 0.0, sound.limiter); - assert!(sound.limiter, "the output limiter ships on (decision 1551)"); - assert!(!sound.reverb, "zone reverb ships off (decision 1153)"); + assert!(sound.limiter, "the output limiter ships on"); + assert!(!sound.reverb, "zone reverb ships off"); assert_eq!(d["uiScale"], DEFAULT_UI_SCALE); // `ViewDistance::default()` reads `$WOW_FARCLIP`, so this is the env-less literal. assert_eq!(d["farclip"], 350.0); @@ -2610,13 +2610,13 @@ mod tests { const LUA_ONLY: &[(&str, &str)] = &[ ( "statusBarText", - "TextStatusBar.lua reads it on CVAR_UPDATE (1140)", + "TextStatusBar.lua reads it on each CVAR_UPDATE", ), ( "UberTooltips", - "GameTooltip's binding-line gate, stock and pfUI (1316)", + "GameTooltip's binding-line gate, stock and pfUI", ), - ("gxApi", "pfUI's system tooltip names the backend (2151)"), + ("gxApi", "pfUI's system tooltip names the backend"), ( "useUiScale", "UIOptionsFrame.lua and OptionsFrame.lua branch on it to gate the uiScale slider", diff --git a/crates/benilla-app/src/debug_panel/mod.rs b/crates/benilla-app/src/debug_panel/mod.rs index a7e6ffe5..c318360b 100644 --- a/crates/benilla-app/src/debug_panel/mod.rs +++ b/crates/benilla-app/src/debug_panel/mod.rs @@ -513,7 +513,7 @@ fn debug_panel_ui( egui::Slider::new(&mut sound_cfg.ambience, 0.0..=1.0) .text("ambience"), ); - ui.checkbox(&mut sound_cfg.limiter, "output limiter (1551)"); + ui.checkbox(&mut sound_cfg.limiter, "output limiter"); ui.separator(); ui.label("kit probe: a SoundEntries id or name"); ui.text_edit_singleline(&mut s.kit_query); diff --git a/crates/benilla-app/src/game_plugins.rs b/crates/benilla-app/src/game_plugins.rs index 770cf59a..4b7bb866 100644 --- a/crates/benilla-app/src/game_plugins.rs +++ b/crates/benilla-app/src/game_plugins.rs @@ -673,7 +673,7 @@ pub(crate) mod schedule_tests { undeclared order against something it shares state with — declare the order \ (`.after`, a set, a `chain`), or raise the ceiling here with the reason. \ `WOW_AMBIGUITY_DUMP=1` on this test lists the pairs; a resource that commutes by \ - construction belongs in `Classes` instead (decisions 2279, 2287)." + construction belongs in `Classes` instead." ); assert!( n + slack >= ceiling, @@ -855,7 +855,7 @@ pub(crate) mod schedule_tests { /// An instrument, not a gate: prints `Update`'s serial depth as-is and with the VM, then /// the audio layer too, made `Send`-owned. Asserts nothing; run it by hand. #[test] - #[ignore = "instrument: run by hand (2265 §A3's executor census) — cargo test -p benilla-app --lib concurrency_census -- --ignored --nocapture"] + #[ignore = "instrument: run by hand (the executor census) — cargo test -p benilla-app --lib concurrency_census -- --ignored --nocapture"] fn concurrency_census() { let mut app = headless_client(); let c = census(&mut app, Update, SyncPoints::Built); @@ -943,7 +943,7 @@ pub(crate) mod schedule_tests { let c = census(&mut app, Update, SyncPoints::Built); if !type_names_available(&c) { eprintln!( - "skipped: this build carries no type names (bevy/debug rides with dev, 1451)" + "skipped: this build carries no type names (bevy/debug rides with the dev feature)" ); return; } @@ -1042,7 +1042,7 @@ pub(crate) mod schedule_tests { assert!( offenders.is_empty(), "these systems hold the VM in `Update` without declaring their side of the tick \ - (decision 2304):\n {}", + (`UiFeed` before it, or `.after(UiInput)`):\n {}", offenders.join("\n ") ); assert!(stale.is_empty(), "stale rows:\n {}", stale.join("\n ")); @@ -1085,7 +1085,7 @@ pub(crate) mod schedule_tests { ("tutorial.rs", "drain_tutorials", Because::FilledByVm, "`sends` exist only after Lua acknowledged, cleared or reset a flag, and go to the wire"), ("ui_action/drain.rs", "drain_go_openers", Because::FilledByVm, - "filled only by a world right-click on a GameObject; the drain sends casts to the wire (2232's own bucket)"), + "filled only by a world right-click on a GameObject; the drain sends casts to the wire"), ("ui_auction/mod.rs", "drain_auction", Because::FilledByVm, "VM verbs; the refresh flags act only under an open window and become wire re-asks"), ("ui_bank/mod.rs", "feed_bank", Because::PlayerRoundTrip, @@ -1125,7 +1125,7 @@ pub(crate) mod schedule_tests { ("ui_loot_roll.rs", "drain_loot_rolls", Because::FilledByVm, "only a Need/Greed/Pass click queues a confirm or vote, held in the VM"), ("ui_loot_roll.rs", "feed_loot_rolls", Because::PlayerRoundTrip, - "a roll exists only after a group member loots under group loot (2232's bucket); leftovers are cleared at socket teardown (another player's act: coincidence-only residual)"), + "a roll exists only after a group member loots under group loot; leftovers are cleared at socket teardown (another player's act: coincidence-only residual)"), ("ui_macro/mod.rs", "load_macros", Because::MemoLatched, "`MacroFiles.identity` is a `VmMemo`, so a new session re-reads the files and re-fires UPDATE_MACROS; also `InWorldGated`"), ("ui_macro/mod.rs", "save_dirty_macros", Because::FilledByVm, @@ -1139,13 +1139,13 @@ pub(crate) mod schedule_tests { ("ui_quest_share.rs", "feed_quest_share", Because::PlayerRoundTrip, "a verdict answers our own push and a confirm follows a party member's escort accept, both held until the name resolves (the confirm is another player's act: coincidence-only residual)"), ("ui_script/extract/mod.rs", "paint_script", Because::Deliberate, - "per-frame paint and cost state, not a queue (2232)"), + "per-frame paint and cost state, not a queue"), ("ui_social/feed.rs", "feed_social", Because::MemoLatched, "the login-burst lists are re-announced to a new VM by `fed.seeded` (`VmMemo`); the show flag is Lua's; a status line waits on the name resolve"), ("ui_stable/mod.rs", "feed_stable", Because::PlayerRoundTrip, "both packets follow a stable master's gossip and a click in its window"), ("ui_summon.rs", "feed_summon", Because::PlayerRoundTrip, - "only another player's Ritual of Summoning latches the ask (2232's duel shape; coincidence-only residual)"), + "only another player's Ritual of Summoning latches the ask (the duel's shape; coincidence-only residual)"), ("ui_tabard.rs", "drain_tabard", Because::FilledByVm, "the intents are Lua's; the event answers a Save intent"), ("ui_tabard.rs", "feed_tabard", Because::PlayerRoundTrip, @@ -1153,7 +1153,7 @@ pub(crate) mod schedule_tests { ("ui_talent_wipe.rs", "feed_talent_wipe", Because::PlayerRoundTrip, "`MSG_TALENT_WIPE_CONFIRM` answers the trainer's gossip option"), ("ui_taxi/mod.rs", "feed_taxi", Because::PlayerRoundTrip, - "both packets follow talking to a flight master (2232's own example)"), + "both packets follow talking to a flight master"), ("ui_tradeskill.rs", "drain_trade_skill", Because::FilledByVm, "every consumed queue is Lua's; the cast-event continuation is inert until a Lua `DoTradeSkill` latched a count"), ("ui_trainer/mod.rs", "feed_trainer", Because::PlayerRoundTrip, @@ -1201,7 +1201,7 @@ pub(crate) mod schedule_tests { let update = census(&mut app, Update, SyncPoints::Built); if !type_names_available(&update) { eprintln!( - "skipped: this build carries no type names (bevy/debug rides with dev, 1451)" + "skipped: this build carries no type names (bevy/debug rides with the dev feature)" ); return; } @@ -1286,10 +1286,10 @@ pub(crate) mod schedule_tests { assert!( offenders.is_empty(), "these systems hold the VM and consume a one-shot with nothing gating them on the \ - interface being up — in 2214's one-frame window they publish to a VM with no frames \ - and the edge is lost (2220, 2232). Gate them (`.run_if(ingame_ui_up)`, on the system \ + interface being up — in the one frame before it is, they publish to a VM with no \ + frames and the edge is lost. Gate them (`.run_if(ingame_ui_up)`, on the system \ or its set), or add them to `EXEMPT` with the reason they cannot be filled before \ - the interface exists (decision 2279):\n {}", + the interface exists:\n {}", offenders.join("\n ") ); assert!( diff --git a/crates/benilla-app/src/glue/mod.rs b/crates/benilla-app/src/glue/mod.rs index 41ad017c..5cda7d00 100644 --- a/crates/benilla-app/src/glue/mod.rs +++ b/crates/benilla-app/src/glue/mod.rs @@ -451,7 +451,7 @@ mod tests { assert_eq!( colour(&app), Color::WHITE, - "hover whitens it (the ref's HighlightFont)" + "hover whitens it (the reference's HighlightFont)" ); app.world_mut().get_mut::(button).unwrap().0 = true; @@ -461,7 +461,7 @@ mod tests { Color::WHITE, "a disabled button does not highlight" ); - assert_ne!(colour(&app), GOLD, "it grays (the ref's GlueFontDisable)"); + assert_ne!(colour(&app), GOLD, "it grays (the stock GlueFontDisable)"); } #[test] diff --git a/crates/benilla-app/src/glue/widgets.rs b/crates/benilla-app/src/glue/widgets.rs index da59b4bb..9bfa7824 100644 --- a/crates/benilla-app/src/glue/widgets.rs +++ b/crates/benilla-app/src/glue/widgets.rs @@ -775,7 +775,7 @@ mod tests { assert_eq!( markup_spans("|cff0055FFDeadly Boss Mod API|r", base, true), vec![("Deadly Boss Mod API".to_string(), blue)], - "B273: the tooltip's title wraps, and wrapping does not exempt it from the decode" + "the tooltip's title wraps, and wrapping does not exempt it from the decode" ); assert_eq!( markup_spans("A |cff00ff00B|r C", base, false), diff --git a/crates/benilla-app/src/go_templates.rs b/crates/benilla-app/src/go_templates.rs index c162da03..d45c0fbe 100644 --- a/crates/benilla-app/src/go_templates.rs +++ b/crates/benilla-app/src/go_templates.rs @@ -193,14 +193,14 @@ mod tests { data[9] = 3; t.insert(100, 2, "Wanted Poster".into(), &data); t.insert(101, 9, "Book".into(), &data); - t.insert(102, 10, "Chest".into(), &data); + t.insert(102, 10, "Goober".into(), &data); t.insert(103, 15, "Boat".into(), &data); assert_eq!(t.templates.get(100).unwrap().quest_material, Some(2)); assert_eq!(t.templates.get(101).unwrap().quest_material, Some(2)); assert_eq!( t.templates.get(102).unwrap().quest_material, Some(3), - "a chest reads data[9]" + "a GOOBER (type 10) reads data[9]" ); assert_eq!(t.templates.get(103).unwrap().quest_material, None); } diff --git a/crates/benilla-app/src/items.rs b/crates/benilla-app/src/items.rs index 6006005b..e4c51bfa 100644 --- a/crates/benilla-app/src/items.rs +++ b/crates/benilla-app/src/items.rs @@ -1026,7 +1026,7 @@ mod tests { ); assert!( !already_bound(&item(0x0, 99), cat), - "an id that names no row binds nothing (the ref's `testl` after the table load)" + "an id that names no row binds nothing (the reference's `testl` after the table load)" ); assert!( !already_bound(&item(0x0, 11), None), diff --git a/crates/benilla-app/src/lib.rs b/crates/benilla-app/src/lib.rs index ad11480e..7f3d229d 100644 --- a/crates/benilla-app/src/lib.rs +++ b/crates/benilla-app/src/lib.rs @@ -242,7 +242,7 @@ pub fn run(build: BuildId) -> AppExit { s.set_executor_kind(bevy::ecs::schedule::ExecutorKind::SingleThreaded); }); println!( - "executor: PostUpdate -> single-threaded (1437 default; WOW_MT_POSTUPDATE=1 for MT)" + "executor: PostUpdate -> single-threaded (the default; WOW_MT_POSTUPDATE=1 for MT)" ); } // The build banner ships in every build: which build produced a log is the first thing a report @@ -395,7 +395,7 @@ pub fn run(build: BuildId) -> AppExit { s.set_executor_kind(bevy::ecs::schedule::ExecutorKind::SingleThreaded); }); println!( - "executor: ExtractSchedule -> single-threaded (1437 default; WOW_MT_EXTRACT=1 for MT)" + "executor: ExtractSchedule -> single-threaded (the default; WOW_MT_EXTRACT=1 for MT)" ); } else { // A missing sub-app would silently flip nothing. diff --git a/crates/benilla-app/src/loading_screen.rs b/crates/benilla-app/src/loading_screen.rs index bebdbdbe..9193bf34 100644 --- a/crates/benilla-app/src/loading_screen.rs +++ b/crates/benilla-app/src/loading_screen.rs @@ -730,7 +730,7 @@ mod tests { assert_eq!( screen.tip_edge, Some(TipEdge::Pick), - "and the tip 2077 just picked survives it — a raise is the only thing that could \ + "and the tip just picked survives it — a raise is the only thing that could \ have cleared it, and no raise happened" ); assert!( diff --git a/crates/benilla-app/src/login/mod.rs b/crates/benilla-app/src/login/mod.rs index 1170f17f..281586f7 100644 --- a/crates/benilla-app/src/login/mod.rs +++ b/crates/benilla-app/src/login/mod.rs @@ -1333,7 +1333,7 @@ mod tests { let _rig = crate::local_state::test_env::EnvGuard::unset("WOW_RIG"); assert!( crate::run_mode::env_login() && !crate::run_mode::unattended(), - "the fixture must be the env the director plays in: credentials, nobody declared away", + "the fixture must be a player's env: credentials, nobody declared away", ); assert!( !refusal_exits(false), diff --git a/crates/benilla-app/src/name_persist.rs b/crates/benilla-app/src/name_persist.rs index 466e499f..d66d5b33 100644 --- a/crates/benilla-app/src/name_persist.rs +++ b/crates/benilla-app/src/name_persist.rs @@ -238,7 +238,7 @@ mod tests { ); assert!( names.generation() > before, - "a landed record moves the counter the gated feeds watch (1439)" + "a landed record moves the counter the gated feeds watch" ); let _ = std::fs::remove_dir_all(&tmp); diff --git a/crates/benilla-app/src/names.rs b/crates/benilla-app/src/names.rs index 04b3b7a3..c404a7dd 100644 --- a/crates/benilla-app/src/names.rs +++ b/crates/benilla-app/src/names.rs @@ -818,8 +818,8 @@ mod tests { fn invalidating_a_player_makes_the_next_resolve_ask_again() { let (cmds, rx) = commands(); let mut cache = NameCache::default(); - cache.insert_player(0x11, "Sam".into(), Some((1, 2, 0))); - assert_eq!(cache.resolve(0x11, &cmds), Some("Sam")); + cache.insert_player(0x11, "Aldric".into(), Some((1, 2, 0))); + assert_eq!(cache.resolve(0x11, &cmds), Some("Aldric")); assert!(matches!(rx.try_recv(), Err(TryRecvError::Empty)), "no ask"); let before = cache.generation(); diff --git a/crates/benilla-app/src/net.rs b/crates/benilla-app/src/net.rs index 8dfa7cf7..e4be9117 100644 --- a/crates/benilla-app/src/net.rs +++ b/crates/benilla-app/src/net.rs @@ -2342,7 +2342,7 @@ mod tests { assert_eq!( current_speed(&unfilled, f::FORWARD | f::WALK_MODE), 0.0, - "no fallback: `min(walk, run)` with walk 0 is 0 (decision 1759)" + "no fallback: `min(walk, run)` with walk 0 is 0" ); assert_eq!( current_speed(&unfilled, f::FORWARD), diff --git a/crates/benilla-app/src/net/motion/remote.rs b/crates/benilla-app/src/net/motion/remote.rs index e9f27bf7..e5a6aba2 100644 --- a/crates/benilla-app/src/net/motion/remote.rs +++ b/crates/benilla-app/src/net/motion/remote.rs @@ -789,7 +789,7 @@ mod under_floor { WIRE_Y, "the terrain 2.10 yd down is outside any walking frame's election reach, so there is \ no floor of ours to find and the wire's height stands — instead of a per-frame \ - descent that nothing here would ever end (2174)" + descent that nothing here would ever end" ); } @@ -817,7 +817,7 @@ mod under_floor { assert!( z < WIRE_Y, "the floor is inside a moving frame's reach, so the election still settles the body \ - onto it — 2174 declines the no-FLOOR drop, never the resolve (z={z:.3})" + onto it — only the no-FLOOR drop is declined, never the resolve (z={z:.3})" ); assert!( z > WIRE_Y - 0.5, @@ -836,12 +836,12 @@ mod under_floor { frames(&mut app, 240); // `-- --nocapture` prints the depth. println!( - "pre-1545 leg, 240 frames: z={:.4} (wire {WIRE_Y})", + "idle gate off, 240 frames: z={:.4} (wire {WIRE_Y})", z_of(&app, e) ); assert!( z_of(&app, e) < TERRAIN_Y + 0.1, - "the pre-1545 leg walks a standing mover down onto the terrain under the building" + "with the idle gate off, a standing mover sinks onto the terrain under the building" ); } } diff --git a/crates/benilla-app/src/net/session.rs b/crates/benilla-app/src/net/session.rs index e5900183..b0a3233c 100644 --- a/crates/benilla-app/src/net/session.rs +++ b/crates/benilla-app/src/net/session.rs @@ -327,7 +327,7 @@ fn on_packet_dropped(In(ev): In, mut b: Bridge) { /// latency reading is a frame late, so it warns. fn on_pong(In(ev): In) { if let SessionEvent::Pong { sequence } = ev { - warn!("net: pong seq={sequence} reached the drain — the read thread's RTT bypass is gone (B346)"); + warn!("net: pong seq={sequence} reached the drain — the read thread's RTT bypass is gone"); } } diff --git a/crates/benilla-app/src/pending_item_ops.rs b/crates/benilla-app/src/pending_item_ops.rs index fd3176d7..bacb11e0 100644 --- a/crates/benilla-app/src/pending_item_ops.rs +++ b/crates/benilla-app/src/pending_item_ops.rs @@ -151,7 +151,7 @@ mod tests { assert!(p.contains(0, 1), "the source end"); assert!( p.contains(0, 5), - "the destination end (0218: the send locks both)" + "the destination end (the send locks both)" ); assert!(!p.contains(1, 1), "a different bag's slot is untouched"); } diff --git a/crates/benilla-app/src/perf/stall.rs b/crates/benilla-app/src/perf/stall.rs index 8803d7dd..8761b5db 100644 --- a/crates/benilla-app/src/perf/stall.rs +++ b/crates/benilla-app/src/perf/stall.rs @@ -154,7 +154,7 @@ fn watchdog(dir: Option) { eprintln!( "stall-sample: main thread stale {age} ms — NOT sampled: an audio \ device is open, and `sample` suspending the process is itself a \ - crackle (1857). `WOW_STALL_SAMPLE=force` to sample anyway." + crackle. `WOW_STALL_SAMPLE=force` to sample anyway." ); declined = true; } diff --git a/crates/benilla-app/src/pipe_warm/menagerie.rs b/crates/benilla-app/src/pipe_warm/menagerie.rs index 40a9e4ec..b4f0ad69 100644 --- a/crates/benilla-app/src/pipe_warm/menagerie.rs +++ b/crates/benilla-app/src/pipe_warm/menagerie.rs @@ -795,8 +795,8 @@ mod tests { assert!( missing.is_empty(), "custom pipeline lanes with no pipe_warm contributor: {missing:?} — a lane the \ - menagerie can't see compiles its pipelines live on first draw (decisions \ - 0837/0938/0958)" + menagerie can't see compiles its pipelines live on first draw, a render-thread \ + stall" ); } @@ -896,7 +896,7 @@ mod tests { missing.is_empty(), "material lanes with no pipe_warm contributor: {missing:?} — every registered \ lane's pipelines compile behind the loading cover, or its first sight is a live \ - render-thread stall (decisions 0837/0937/0938/0958)" + render-thread stall" ); } } diff --git a/crates/benilla-app/src/pipe_warm/mod.rs b/crates/benilla-app/src/pipe_warm/mod.rs index 1a1a7a78..f556c93b 100644 --- a/crates/benilla-app/src/pipe_warm/mod.rs +++ b/crates/benilla-app/src/pipe_warm/mod.rs @@ -485,7 +485,7 @@ fn census_view_classes( warn!( "pipeline warm: camera {} draws through {} — a view key the menagerie never rendered \ a rig through, so its whole model-pipeline space compiles LIVE on first sight. Give \ - it a warm arm (decisions 0958/2262/2264). Warm keys this session: {}.", + it a warm arm. Warm keys this session: {}.", name.map_or("", Name::as_str), class.describe(), warm.warmed_views @@ -719,7 +719,7 @@ mod census_tests { /// A warm set with no orthographic arm: the world camera's Perspective and the two /// `Msaa::Off` booth classes. - fn warm_set_before_2262() -> Vec { + fn warm_set_without_an_orthographic_arm() -> Vec { vec![ view_class(Some(&perspective()), Some(&Msaa::Off), true), view_class(Some(&perspective()), Some(&Msaa::Sample4), true), @@ -731,12 +731,12 @@ mod census_tests { /// would miss it. #[test] fn the_census_fires_for_an_unwarmed_orthographic_camera() { - let warm = warm_set_before_2262(); + let warm = warm_set_without_an_orthographic_arm(); let tile_cam = view_class(Some(&orthographic()), Some(&Msaa::Off), true); assert!( !warm.contains(&tile_cam), "the ui_models tile camera's view key must read as unwarmed against a warm set that \ - has no orthographic arm — this is the report 2262 was written to produce" + has no orthographic arm — the census must report it" ); assert_eq!( tile_cam.samples, 1, @@ -746,7 +746,7 @@ mod census_tests { #[test] fn the_census_is_silent_for_every_warmed_class() { - let warm = warm_set_before_2262(); + let warm = warm_set_without_an_orthographic_arm(); for class in &warm { assert!(warm.contains(class)); } @@ -754,7 +754,7 @@ mod census_tests { assert!( warm.contains(&booth_after_first_bake), "a booth's runtime-installed custom projection is the NONSTANDARD class, warmed by \ - the twin booth (0958)" + the twin booth" ); } @@ -764,6 +764,6 @@ mod census_tests { let with = view_class(Some(&perspective()), Some(&Msaa::Off), true); let without = view_class(Some(&perspective()), Some(&Msaa::Off), false); assert_ne!(with, without); - assert!(!warm_set_before_2262().contains(&without)); + assert!(!warm_set_without_an_orthographic_arm().contains(&without)); } } diff --git a/crates/benilla-app/src/player/camera_water.rs b/crates/benilla-app/src/player/camera_water.rs index 4753a8d3..9ce6d504 100644 --- a/crates/benilla-app/src/player/camera_water.rs +++ b/crates/benilla-app/src/player/camera_water.rs @@ -146,7 +146,7 @@ mod tests { ); assert!( over > 0.0, - "and above it at all — this is the whole difference between 2170 and a working camera" + "and above it at all — a pivot at or under the plane is what breaks the camera" ); } diff --git a/crates/benilla-app/src/player/movement_net.rs b/crates/benilla-app/src/player/movement_net.rs index d71f304b..aedba53d 100644 --- a/crates/benilla-app/src/player/movement_net.rs +++ b/crates/benilla-app/src/player/movement_net.rs @@ -744,7 +744,7 @@ mod tests { step_off(0.1, &mut player); assert!( rx.try_recv().is_err(), - "the arc's first frame puts NOTHING on the wire — this packet is B79's un-seat" + "the arc's first frame puts NOTHING on the wire — a packet here un-seats the player" ); assert_eq!( player.move_flags, diff --git a/crates/benilla-app/src/player/mover.rs b/crates/benilla-app/src/player/mover.rs index 24aa74d5..dca9b97b 100644 --- a/crates/benilla-app/src/player/mover.rs +++ b/crates/benilla-app/src/player/mover.rs @@ -1005,7 +1005,7 @@ mod tests { // The blocking edge is low on the bevel, inside the cone, so this rides rather than pops. assert!( frames[0].0 < 0.3, - "a 0.91 yd gain in one frame is the teleport 1126 exists to avoid: {frames:?}" + "a 0.91 yd gain in one frame is the teleport the ride avoids: {frames:?}" ); } @@ -1832,7 +1832,7 @@ mod tests { wire, (true, JUMP_SPEED), "`force = 0` skips that test and takes off on the land seed `0xc0fe93d8` (the launch \ - speed, not the post-gravity `vel_y` — 1740)" + speed, not the post-gravity `vel_y`)" ); } @@ -2094,7 +2094,7 @@ mod tests { assert_eq!( vel_y, PUSH.y, "the vertical is the server's take-off speed, not JUMP_SPEED ({JUMP_SPEED}) — read off \ - `launch_vz`, because `vel_y` has already taken this frame's gravity step (1740)" + `launch_vz`, because `vel_y` has already taken this frame's gravity step" ); assert_eq!( horiz, diff --git a/crates/benilla-app/src/player/server_ride.rs b/crates/benilla-app/src/player/server_ride.rs index 88826e67..01ebbe8b 100644 --- a/crates/benilla-app/src/player/server_ride.rs +++ b/crates/benilla-app/src/player/server_ride.rs @@ -486,7 +486,7 @@ mod tests { assert_eq!( (player.vel_y, player.horiz_vel), (0.0, Vec3::ZERO), - "the controller resumes from the endpoint at rest (decision 0260) — \ + "the controller resumes from the endpoint at rest — \ stale pre-ride momentum must not leak into the resume" ); match rx.try_recv() { diff --git a/crates/benilla-app/src/player/swim.rs b/crates/benilla-app/src/player/swim.rs index 195a0234..a941296b 100644 --- a/crates/benilla-app/src/player/swim.rs +++ b/crates/benilla-app/src/player/swim.rs @@ -618,14 +618,14 @@ mod tests { } // One shared height would put a gnome's rest line above her head. - let pre_0645 = rest_cap(crate::player::DEFAULT_COLLISION_HEIGHT); + let shared_rest = rest_cap(crate::player::DEFAULT_COLLISION_HEIGHT); assert!( - pre_0645 > GNOME_FEMALE, - "the old constant rest line ({pre_0645}) must sit above a {GNOME_FEMALE}-yd gnome — \ + shared_rest > GNOME_FEMALE, + "the old constant rest line ({shared_rest}) must sit above a {GNOME_FEMALE}-yd gnome — \ that was the bug, and if this ever fails the test below is no longer testing it" ); assert!( - pre_0645 - GNOME_FEMALE > 0.3, + shared_rest - GNOME_FEMALE > 0.3, "…by a third of a yard of water over her head, not a rounding error" ); } diff --git a/crates/benilla-app/src/player/wire_in.rs b/crates/benilla-app/src/player/wire_in.rs index 548d148e..6a723e91 100644 --- a/crates/benilla-app/src/player/wire_in.rs +++ b/crates/benilla-app/src/player/wire_in.rs @@ -549,12 +549,12 @@ mod session_end_tests { assert!( p.modes == Default::default(), "the granted modes belonged to the mover that just ended — a root that survives \ - `/logout` is B306: the character re-enters the world and WASD is dead" + `/logout` means the character re-enters the world and WASD is dead" ); assert!( *p == Player::default(), "and nothing else survives either: the session boundary returns the resource to the \ - state `player::setup` inserts at boot (1542)" + state `player::setup` inserts at boot" ); } diff --git a/crates/benilla-app/src/portrait/mod.rs b/crates/benilla-app/src/portrait/mod.rs index 03ddc0d5..6fdeab7a 100644 --- a/crates/benilla-app/src/portrait/mod.rs +++ b/crates/benilla-app/src/portrait/mod.rs @@ -2457,7 +2457,7 @@ mod tests { let bow: Vec<&PortraitRider> = bow.iter().collect(); assert!( LookKey::build(&body, &[], &[], &[]) != LookKey::build(&body, &bow, &[], &[]), - "the pre-1616 key moved on the draw — which is the bug" + "the mirrored-geometry key moved on the draw — which is the bug" ); } diff --git a/crates/benilla-app/src/preflight.rs b/crates/benilla-app/src/preflight.rs index b1be8d1d..89dc269e 100644 --- a/crates/benilla-app/src/preflight.rs +++ b/crates/benilla-app/src/preflight.rs @@ -143,8 +143,8 @@ fn camera_2d_msaa_agrees( counts` the frame it goes active. Bevy keys the Core2d DEPTH texture on the target \ alone (core_2d::prepare_core_2d_depth_textures) but the COLOUR target on the sample \ count too, so they share one depth attachment and cannot share a colour one. Usually \ - the cause is a camera that never named an Msaa: silence is Sample4, not off \ - (decisions 1628, 1659).", + the cause is a camera that never named an Msaa: silence is Sample4, not off, so \ + name one on every camera.", other_label.as_deref().unwrap_or("an unnamed Camera2d"), other_samples, label.as_deref().unwrap_or("an unnamed Camera2d"), @@ -302,7 +302,7 @@ fn findings( ShieldReport::Disabled => out.push( "THE PROBE SHIELD IS OFF (WOW_GOD=off) — this character CAN die, so an unattended run \ can leave a corpse for the next session. Deliberate for a death-arc test; unset \ - WOW_GOD for anything else (decision 0677)." + WOW_GOD for anything else." .into(), ), ShieldReport::Unconfirmed => out.push( @@ -321,17 +321,17 @@ fn findings( Any hostility, reaction-colour, nameplate, threat, aggro, damage or drowning reading \ taken now is wrong. It ALSO suspends the INDOOR DISMOUNT: \ `CheckAreaExploreAndOutdoor` drops outdoor-only auras only `if (… && \ - !IsGameMaster())`, so a GM rides into a building and stays mounted (decision 0934). {}", + !IsGameMaster())`, so a GM rides into a building and stays mounted. {}", match shield { // The default on a probe body, so this warning shows on most runs. ShieldReport::Arming | ShieldReport::Armed => "This is the default. Re-run with WOW_GM=off for those readings — safe, \ - because the probe shield (decision 0677) keeps the body alive without it.", + because the probe shield keeps the body alive without it.", // `WOW_GM` does not reach a non-probe body, and vmangos persists GM mode in // `characters.extra_flags` bit 0, restored at login by `GM.LoginState = 2`. ShieldReport::NotOurs => "WOW_GM does not reach this body — the shield only ever commands probe accounts \ - (0677) — so the way out is typing `.gm off` yourself. It persists across \ + — so the way out is typing `.gm off` yourself. It persists across \ logins (vmangos GM.LoginState = 2), which is why it is on now.", _ => "Re-run with WOW_GM=off for those readings. Note the probe shield is NOT up on \ diff --git a/crates/benilla-app/src/probe_shield.rs b/crates/benilla-app/src/probe_shield.rs index 7e8a499e..2b0d1f0d 100644 --- a/crates/benilla-app/src/probe_shield.rs +++ b/crates/benilla-app/src/probe_shield.rs @@ -267,7 +267,7 @@ fn drive_shield( "probe-shield: GM mode is off — turning it back ON, so a parked body is not \ permanently mobbed. Readings taken now are faction-35 readings and are wrong \ for anything about hostility, colour, threat, aggro, damage or timers \ - (0649/0657) — set WOW_GM=off for those, which is safe: the shield holds." + — set WOW_GM=off for those, which is safe: the shield holds." ); shield.steps.push(".gm on".into()); } diff --git a/crates/benilla-app/src/run_mode.rs b/crates/benilla-app/src/run_mode.rs index 47ce708c..3b9b02de 100644 --- a/crates/benilla-app/src/run_mode.rs +++ b/crates/benilla-app/src/run_mode.rs @@ -73,8 +73,8 @@ pub(crate) fn fatal_when_driverless(why: &str) -> bool { if env_login() { warn!( "login: {why} — leaving the dialog up, because nothing declared this run driverless. \ - Set WOW_UNATTENDED=1 if nobody is here and it should exit non-zero instead \ - (decision 1769)." + Set WOW_UNATTENDED=1 if nobody is here and it should exit \ + non-zero instead." ); } false @@ -289,9 +289,9 @@ mod tests { "a dev-chord affordance outside the dev roots must go through `run_mode::dev_chord`, \ which is `false` in a player build — the engine's `modkeys::dev_chord` is always \ compiled, so calling it directly ships a live dev key to a player and the build gate \ - cannot see it (decision 1176). And a `#[cfg(feature = \"dev\")]` outside `run_mode`, \ + cannot see it. And a `#[cfg(feature = \"dev\")]` outside `run_mode`, \ `dev.rs` and `lib.rs` means a gameplay module has learned the seam exists — ask \ - `run_mode::dev_affordances()` instead (decision 1179). Offenders:\n {}", + `run_mode::dev_affordances()` instead. Offenders:\n {}", offenders.join("\n "), ); } diff --git a/crates/benilla-app/src/shutdown.rs b/crates/benilla-app/src/shutdown.rs index 992042ba..de0cdfe0 100644 --- a/crates/benilla-app/src/shutdown.rs +++ b/crates/benilla-app/src/shutdown.rs @@ -98,7 +98,7 @@ mod tests { assert!( app.world().resource::().0 == 0, "…and the Update system did not see it. This is the bug: every file the session \ - would have written on the way out is simply never written (1528)" + would have written on the way out is simply never written" ); } @@ -153,7 +153,7 @@ mod tests { app.world().resource::().0, 1, "the tail runs on the edge; a second run would re-fire \ - PLAYER_LEAVING_WORLD/PLAYER_LOGOUT into every addon (1537)" + PLAYER_LEAVING_WORLD/PLAYER_LOGOUT into every addon" ); } diff --git a/crates/benilla-app/src/sound/vocal.rs b/crates/benilla-app/src/sound/vocal.rs index 7db3abc0..1302b222 100644 --- a/crates/benilla-app/src/sound/vocal.rs +++ b/crates/benilla-app/src/sound/vocal.rs @@ -429,7 +429,7 @@ mod tests { ); assert!( s.table.iter().all(|slot| slot.annoyed.is_none()), - "an annoyed kit resolved — 1815's dormancy is over" + "an annoyed kit resolved — this build's escalation is no longer silent" ); // A race change is a full rebuild: Tauren line 0, not Human's, and no Human residue. diff --git a/crates/benilla-app/src/spell/cast_send.rs b/crates/benilla-app/src/spell/cast_send.rs index 2fcccdd6..c28329f4 100644 --- a/crates/benilla-app/src/spell/cast_send.rs +++ b/crates/benilla-app/src/spell/cast_send.rs @@ -760,8 +760,8 @@ mod tests { assert!(rx.try_recv().is_err(), "no duplicate on the wire"); assert!( world.resource::().0.is_empty(), - "the same spell's re-press is the ref's SILENT bail (6e4d43), not \"Another action is \ - in progress\"" + "the same spell's re-press is the reference's SILENT bail (6e4d43), not \"Another \ + action is in progress\"" ); // A different cast mid-opener is the loud refusal (6e4d97). @@ -1057,7 +1057,7 @@ mod tests { assert!(rx.try_recv().is_err(), "no duplicate on the wire"); assert!( world.resource::().0.is_empty(), - "the same spell's re-press is the ref's SILENT bail (6e4d43), not a red line" + "the same spell's re-press is the reference's SILENT bail (6e4d43), not a red line" ); send(&mut world, MOUNT, HEARTH_COMMIT); @@ -1250,7 +1250,7 @@ mod tests { assert_eq!( world.resource::().0, vec![CastFail::local(MOUNT, 0x61)], - "mid-cast outranks the cooldown rung (the ref's IsCasting precedes the validator)" + "mid-cast outranks the cooldown rung (the reference's IsCasting precedes the validator)" ); } diff --git a/crates/benilla-app/src/spell/cast_target.rs b/crates/benilla-app/src/spell/cast_target.rs index 756f47b7..52614d9b 100644 --- a/crates/benilla-app/src/spell/cast_target.rs +++ b/crates/benilla-app/src/spell/cast_target.rs @@ -518,7 +518,7 @@ mod tests { &rel_none() ), CastWireTarget::SelfImplicit, - "word==0 commits before the arm-16 defer — the ref's order" + "word==0 commits before the arm-16 defer — the reference's order" ); } diff --git a/crates/benilla-app/src/spell/inflight.rs b/crates/benilla-app/src/spell/inflight.rs index 2de4b409..b2b889e5 100644 --- a/crates/benilla-app/src/spell/inflight.rs +++ b/crates/benilla-app/src/spell/inflight.rs @@ -577,9 +577,9 @@ mod tests { (&feed[0], &feed[1]), (CastBarEdge::Stop, CastBarEdge::Interrupted) ), - "the bar edges are the ref's own two-step at RTT→0 — STOP (arms the flash \ - overlay) then the red INTERRUPTED (the echo's repaint: hold, burst, fade); \ - the keyed reap silences the real echo (0449/0454)" + "the bar edges are the reference's own two-step at RTT→0 — STOP (arms the \ + flash overlay) then the red INTERRUPTED (the echo's repaint: hold, burst, fade); \ + the keyed reap silences the real echo" ); let self_e = app.world().resource::().0[&10]; assert!( @@ -742,7 +742,7 @@ mod tests { rx.try_recv(), Ok(crate::net::ClientCommand::CancelAutoRepeat) ), - "the auto-repeat cancel ships first — the ref's priority branch" + "the auto-repeat cancel ships first — the reference's priority branch" ); assert!(rx.try_recv().is_err(), "the cast survives the first press"); assert!(app.world().resource::().0.is_none()); @@ -823,8 +823,8 @@ mod tests { app.world().resource::().0[..], [CastBarEdge::Stop] ), - "the ref's `0x152` STOP and nothing else: no red INTERRUPTED for a spell that \ - never opened a bar" + "the reference's `0x152` STOP and nothing else: no red INTERRUPTED for a \ + spell that never opened a bar" ); } diff --git a/crates/benilla-app/src/spell/net.rs b/crates/benilla-app/src/spell/net.rs index 9f87814e..eccdf8db 100644 --- a/crates/benilla-app/src/spell/net.rs +++ b/crates/benilla-app/src/spell/net.rs @@ -2640,7 +2640,7 @@ mod tests { ); assert!( swings(&fire(10, SERPENT_STING, false)).is_empty(), - "Serpent Sting carries Ex2 bit 17, not bit 20 — it starts nothing (B280 / 0994 §4)" + "Serpent Sting carries Ex2 bit 17, not bit 20 — it starts nothing" ); assert!( swings(&fire(10, BACKSTAB, true)).is_empty(), diff --git a/crates/benilla-app/src/spell/targeting/item.rs b/crates/benilla-app/src/spell/targeting/item.rs index 5d602516..60199aef 100644 --- a/crates/benilla-app/src/spell/targeting/item.rs +++ b/crates/benilla-app/src/spell/targeting/item.rs @@ -441,7 +441,7 @@ mod tests { existing: 2564, new: 1900 }, - "and its Yes lands on the replace question — the ref's two-popup chain" + "and its Yes lands on the replace question — the reference's two-popup chain" ); // 3. The slot fork, the one place effects 53 and 54 differ: PERM for 53, TEMP for 54. diff --git a/crates/benilla-app/src/spell/validator.rs b/crates/benilla-app/src/spell/validator.rs index 02ac85a2..bab56f06 100644 --- a/crates/benilla-app/src/spell/validator.rs +++ b/crates/benilla-app/src/spell/validator.rs @@ -424,7 +424,7 @@ mod tests { assert_eq!( cast_water_refusal(0, Some(aquatic)), Some(ERR_ONLY_UNDERWATER), - "on land, Aquatic Form refuses — the B176 report" + "on land, Aquatic Form refuses: it is underwater-only" ); assert_eq!( cast_water_refusal(crate::creature_anim::move_flags::SWIMMING, Some(aquatic)), diff --git a/crates/benilla-app/src/ui_action/feed_tests.rs b/crates/benilla-app/src/ui_action/feed_tests.rs index d1201f5f..d317ee35 100644 --- a/crates/benilla-app/src/ui_action/feed_tests.rs +++ b/crates/benilla-app/src/ui_action/feed_tests.rs @@ -95,7 +95,7 @@ fn a_landed_item_template_redisplays_the_action_slot() { fed_texture(&mut app).as_deref(), Some(MISSING_ITEM_ICON), "the first resolve of a cold entry IS the ask, so it can only show the reference's own \ - placeholder — and never nil, since ref FrameXML HIDES the icon on a nil texture (0666)" + placeholder — and never nil, since ref FrameXML HIDES the icon on a nil texture" ); assert!( rx.try_iter() diff --git a/crates/benilla-app/src/ui_aura.rs b/crates/benilla-app/src/ui_aura.rs index 51515745..d24d58be 100644 --- a/crates/benilla-app/src/ui_aura.rs +++ b/crates/benilla-app/src/ui_aura.rs @@ -922,7 +922,7 @@ mod tests { assert_eq!( denied.iter().map(|a| a.spell_id).collect::>(), [22766], - "a hostile creature shows its debuffs and NOT its buffs — the B216 divergence" + "a hostile creature shows its debuffs and NOT its buffs — `UnitBuff`'s unit gate" ); assert!(denied.iter().all(|a| !a.helpful)); diff --git a/crates/benilla-app/src/ui_chat/edit.rs b/crates/benilla-app/src/ui_chat/edit.rs index a1e80bac..d51fad31 100644 --- a/crates/benilla-app/src/ui_chat/edit.rs +++ b/crates/benilla-app/src/ui_chat/edit.rs @@ -159,7 +159,7 @@ impl ChannelState { Some(mask) => *mask |= bit, // No join precedes the cache loader, so this is a broken ordering. None if bit != 0 => warn!( - "chat: {name:?} confirmed joined before the chat cache seated the zone mask — bit {bit:#x} dropped" + "chat: {name:?} joined before the zone mask was seated — bit {bit:#x} dropped" ), None => {} } diff --git a/crates/benilla-app/src/ui_chat/input/mod.rs b/crates/benilla-app/src/ui_chat/input/mod.rs index 34da3a70..e719ed90 100644 --- a/crates/benilla-app/src/ui_chat/input/mod.rs +++ b/crates/benilla-app/src/ui_chat/input/mod.rs @@ -442,7 +442,7 @@ pub(super) fn drain_chat_input( ); lines.push(format!( "reaction: plate is_player {is_player} (OBJECT_FIELD_TYPE says {:?}; the two \ - must agree — the predicates read the field, 1674) · faction-group mask self {} \ + must agree — the predicates read the field) · faction-group mask self {} \ target {} · can_cooperate {} · can_attack(player→unit) {}", target_store.and_then(|s| s.0.object_type()), mask(own_store), diff --git a/crates/benilla-app/src/ui_chat/tests.rs b/crates/benilla-app/src/ui_chat/tests.rs index df7fcf6e..95d2a426 100644 --- a/crates/benilla-app/src/ui_chat/tests.rs +++ b/crates/benilla-app/src/ui_chat/tests.rs @@ -443,7 +443,7 @@ fn an_addon_registering_our_own_chat_frame_does_not_double_print() { assert_eq!( lines_in_window(&s), 2, - "one more line, not two — ChatFrame1's own OnEvent does not render CHAT_MSG_*" + "one more line, not two — registering an event again never fires it twice" ); assert_eq!(s.eval::("return SpyN").unwrap(), 2); assert!(s.errors().is_empty(), "handler errors: {:?}", s.errors()); @@ -934,7 +934,7 @@ fn a_leave_notice_keeps_its_number_because_the_record_dies_after_the_line() { assert_eq!( channels.names(), [Some("World".to_string()), None], - "and only THEN is the record gone — as a HOLE at slot 2, not a shortened list (1286)" + "and only THEN is the record gone — as a HOLE at slot 2, not a shortened list" ); } @@ -1985,7 +1985,7 @@ fn the_combat_log_window_has_the_docks_rect() { assert_eq!( s.eval::("return ChatFrame2:GetNumPoints()").unwrap(), 3, - "FCF_DockUpdate's three points — a 2 means the dock never seeded this window" + "FCF_DockUpdate's three points — any other count means the dock never seeded this window" ); assert_eq!( s.eval::("return table.getn(DOCKED_CHAT_FRAMES)") diff --git a/crates/benilla-app/src/ui_gm_ticket.rs b/crates/benilla-app/src/ui_gm_ticket.rs index 2e7d5097..9fcfc8c3 100644 --- a/crates/benilla-app/src/ui_gm_ticket.rs +++ b/crates/benilla-app/src/ui_gm_ticket.rs @@ -349,7 +349,7 @@ pub(crate) mod net { } 2 => debug!("gm ticket: a GM closed the ticket"), 3 => { - debug!("gm ticket: a GM survey was offered — the survey window is deferred (1673)") + debug!("gm ticket: a GM survey was offered — the survey window is deferred") } other => debug!("gm ticket: unknown status update {other}"), } diff --git a/crates/benilla-app/src/ui_gossip/mod.rs b/crates/benilla-app/src/ui_gossip/mod.rs index 6d82db21..a4488ddd 100644 --- a/crates/benilla-app/src/ui_gossip/mod.rs +++ b/crates/benilla-app/src/ui_gossip/mod.rs @@ -325,7 +325,7 @@ fn drain_gossip( option: opt.index, }); } - Some(_) => debug!("ui_gossip: ignoring coded option {pos} (v1 greys it)"), + Some(_) => debug!("ui_gossip: ignoring coded option {pos} (coded options are greyed)"), None => debug!("ui_gossip: SelectGossipOption({pos}) out of range — ignored"), } } diff --git a/crates/benilla-app/src/ui_instance.rs b/crates/benilla-app/src/ui_instance.rs index 06b1a300..fa167c53 100644 --- a/crates/benilla-app/src/ui_instance.rs +++ b/crates/benilla-app/src/ui_instance.rs @@ -805,7 +805,7 @@ mod tests { assert_eq!( state(&app), (Some(36), true), - "the flip records the dungeon AND our own eyes (1754's term 1)" + "the flip records the dungeon AND our own eyes" ); // Writer 2, on a fresh state: a raid id is dropped, a party dungeon lands without the diff --git a/crates/benilla-app/src/ui_items/equip_error.rs b/crates/benilla-app/src/ui_items/equip_error.rs index 6add3d35..e7a8a371 100644 --- a/crates/benilla-app/src/ui_items/equip_error.rs +++ b/crates/benilla-app/src/ui_items/equip_error.rs @@ -143,7 +143,7 @@ mod tests { // Empty, which the drain's `is_empty()` skip drops as `0x4945b4`'s guard does. assert!( text.is_empty(), - "reason 59's {key} resolved to {text:?} — B198's duplicate line is back" + "reason 59's {key} resolved to {text:?} — the duplicate line is back" ); continue; } diff --git a/crates/benilla-app/src/ui_items/feed.rs b/crates/benilla-app/src/ui_items/feed.rs index 07ef218f..ec0913e1 100644 --- a/crates/benilla-app/src/ui_items/feed.rs +++ b/crates/benilla-app/src/ui_items/feed.rs @@ -1742,7 +1742,7 @@ mod tests { s.eval::("return table.concat(ORDER, ' ')").unwrap(), "ITEM_LOCK_CHANGED:nil,nil BAG_UPDATE:0,nil", "the shot signal fires — with NO arguments, as all five of the reference's fire sites \ - do (decision 2140) — and precedes BAG_UPDATE. The slot it names travels in the fact \ + do — and precedes BAG_UPDATE. The slot it names travels in the fact \ that it fired at all, which is enough: every consumer repaints from its own `this`, \ and Quiver's shot timer only needs to know that A shot happened" ); diff --git a/crates/benilla-app/src/ui_items/mod.rs b/crates/benilla-app/src/ui_items/mod.rs index 1ad91d53..1f0ebc62 100644 --- a/crates/benilla-app/src/ui_items/mod.rs +++ b/crates/benilla-app/src/ui_items/mod.rs @@ -1626,7 +1626,7 @@ mod count_of_tests { assert_eq!( count_of(&store, &objs.get(), AMMO, InventoryScope::CARRIED), 0, - "benilla's pre-1158 count reached neither band — the named narrowing" + "the carried scope reaches neither worn gear nor the keyring — the named narrowing" ); } diff --git a/crates/benilla-app/src/ui_loot_roll.rs b/crates/benilla-app/src/ui_loot_roll.rs index c7a8f8fb..00f826a6 100644 --- a/crates/benilla-app/src/ui_loot_roll.rs +++ b/crates/benilla-app/src/ui_loot_roll.rs @@ -624,7 +624,7 @@ mod tests { #[test] fn line_table_covers_every_shape() { let other = Some("Bob"); - let me = Some("Sam"); + let me = Some("Aldric"); // (packet, name, is_self, expected) let cases: &[(LootRoll, Option<&str>, bool, &str)] = &[ // The three votes (`Group.cpp:970-990`), which have _SELF forms. @@ -665,7 +665,7 @@ mod tests { announce(1, 57, roll_vote::NEED), me, true, - "Need Roll - 57 for {L} by Sam", + "Need Roll - 57 for {L} by Aldric", ), ( announce(1, 57, roll_vote::GREED), @@ -677,7 +677,7 @@ mod tests { announce(1, 57, roll_vote::GREED), me, true, - "Greed Roll - 57 for {L} by Sam", + "Greed Roll - 57 for {L} by Aldric", ), ]; for (p, name, is_self, expect) in cases { @@ -698,14 +698,14 @@ mod tests { for roll_type in [roll_vote::NEED, roll_vote::GREED] { let got = format_line( &RollLine::Announce(announce(1, 57, roll_type)), - Some("Sam"), + Some("Aldric"), true, // is_self LINK, true, ) .expect("detail on emits the dice line"); assert!( - got.ends_with("by Sam"), + got.ends_with("by Aldric"), "our own roll must name us third-person: {got}" ); assert!( diff --git a/crates/benilla-app/src/ui_macro/mod.rs b/crates/benilla-app/src/ui_macro/mod.rs index 080ad02b..51049bfe 100644 --- a/crates/benilla-app/src/ui_macro/mod.rs +++ b/crates/benilla-app/src/ui_macro/mod.rs @@ -85,7 +85,7 @@ fn load_icon_catalog( info!("ui_macro: {} macro icons in the chooser", icons.len()); script.set_macro_icons(icons); } - Err(e) => error!("ui_macro: SpellIcon.dbc failed — the icon chooser is empty: {e:#}"), + Err(e) => error!("ui_macro: no Interface\\Icons\\ listing — the chooser is empty: {e:#}"), } } diff --git a/crates/benilla-app/src/ui_party/feed.rs b/crates/benilla-app/src/ui_party/feed.rs index 29065f33..70cd5314 100644 --- a/crates/benilla-app/src/ui_party/feed.rs +++ b/crates/benilla-app/src/ui_party/feed.rs @@ -1384,7 +1384,7 @@ mod tests { }; let s = member_unit_state(&m, Some(&ghost), None, &GroupState::default(), None, None); assert!(s.ghost); - assert!(!s.dead, "a released ghost is not `dead` — the 0308 §1 trio"); + assert!(!s.dead, "a released ghost is not `dead` — only a ghost"); // The overlay ORs: a roster byte carrying the bit still wins over a record without it. let stale = GroupMemberEntry { @@ -1607,10 +1607,10 @@ mod tests { } let mut names = NameCache::default(); - names.insert_player(0x5E1F, "Sam".into(), None); + names.insert_player(0x5E1F, "Kel".into(), None); assert_eq!( raid_name_of(&group, me, &names, 0x5E1F).as_deref(), - Some("Sam") + Some("Kel") ); assert_eq!( raid_name_of(&group, me, &names, 0xA11CE).as_deref(), @@ -1622,7 +1622,7 @@ mod tests { raid_guid_for_name(&group, me, &names, "alice"), Some(0xA11CE) ); - assert_eq!(raid_guid_for_name(&group, me, &names, "SAM"), Some(0x5E1F)); + assert_eq!(raid_guid_for_name(&group, me, &names, "KEL"), Some(0x5E1F)); assert_eq!(raid_guid_for_name(&group, me, &names, "Nobody"), None); // Outside a raid all are empty, so a raid verb in a party sends nothing. @@ -1636,7 +1636,7 @@ mod tests { let mut group = GroupState::default(); let me = Some(0x5E1Fu64); let mut names = NameCache::default(); - names.insert_player(0x5E1F, "Sam".into(), None); + names.insert_player(0x5E1F, "Kel".into(), None); synthetic_raid(&mut group, &mut names, me); assert!(group.test, "the synthetic raid arms the sandbox"); assert_eq!(group.group_type, GROUPTYPE_RAID); diff --git a/crates/benilla-app/src/ui_pass.rs b/crates/benilla-app/src/ui_pass.rs index 8cc6cd25..2b0be66c 100644 --- a/crates/benilla-app/src/ui_pass.rs +++ b/crates/benilla-app/src/ui_pass.rs @@ -1465,7 +1465,7 @@ mod tests { assert_eq!( material_events(&app), (0, 0), - "no material was built or rebuilt for a colour — the count 2236 gates on" + "no material was built or rebuilt for a colour — a colour is a tag, not a material" ); assert_eq!( app.world().resource::>().len(), diff --git a/crates/benilla-app/src/ui_script/action_bar_tests.rs b/crates/benilla-app/src/ui_script/action_bar_tests.rs index 1a7fe5a8..755e6dec 100644 --- a/crates/benilla-app/src/ui_script/action_bar_tests.rs +++ b/crates/benilla-app/src/ui_script/action_bar_tests.rs @@ -26,7 +26,7 @@ fn shipped_action_bar_drives_end_to_end() { + super::test_ui::load_ui(&s, "Interface\\FrameXML\\BonusActionBarFrame.xml"); assert_eq!( frames, 80, - "what the three stock files declare (1938): MainMenuBar.xml's 8 — the bar, the XP StatusBar, \ + "what the three stock files declare: MainMenuBar.xml's 8 — the bar, the XP StatusBar, \ the overlay frame, the max-level rail, the art frame, the performance bar and its button, \ the exhaustion tick; ActionBarFrame.xml's 14 — 12 ActionButtons and the 2 page arrows; \ BonusActionBarFrame.xml's 24 — the bonus frame with its 12 buttons and the shapeshift frame \ @@ -304,7 +304,7 @@ fn state_feedback_drives_cooldown_checked_and_usable_through_the_xml() { assert_eq!( (c[0], c[1], c[2]), (0.4, 0.4, 0.4), - "the ref's unusable grey — the icon the director sees on food in combat" + "the ref's unusable grey — the icon a player sees on food in combat" ); assert!(s.errors().is_empty(), "script errors: {:?}", s.errors()); @@ -907,7 +907,7 @@ fn count_fontstring_follows_is_consumable_action_not_the_bag_count() { assert_eq!( count_of(&s, 3), "", - "B201: a NON-consumable ITEM (a mount) shows no stack number, whatever the count says" + "a NON-consumable ITEM (a mount) shows no stack number, whatever the count says" ); assert!( s.extract() @@ -1048,7 +1048,7 @@ fn shipped_bag_frame_drives_end_to_end() { Model on each of the four slots that inherit PaperDollItemSlotButtonTemplate (+4). The \ deleted BagFrame.xml built 12: it mirrored the six buttons and their push cards but had \ no cooldown on a bag-bar slot at all, which is the reference's own and is what the swap \ - to Interface\\FrameXML\\MainMenuBarBagButtons.xml brought with it (1751 window 3)" + to Interface\\FrameXML\\MainMenuBarBagButtons.xml brought with it" ); // The app's feed: a backpack with Tough Jerky ×5 in slot 1. @@ -1523,7 +1523,7 @@ fn the_main_bar_pages_and_a_bonus_page_still_outranks_it() { end return true" ) .unwrap(), - "all six pages are viewable at rest — every extra bar ships off (1500)" + "all six pages are viewable at rest — every extra bar ships off" ); // The page numeral: `ActionBarUpButton` writes it at load and on `ACTIONBAR_PAGE_CHANGED` // (ActionBarFrame.xml:175, 180). @@ -1609,7 +1609,7 @@ fn the_main_bar_pages_and_a_bonus_page_still_outranks_it() { s.eval::("return ActionButton_GetPagedID(BonusActionButton1)") .unwrap(), 25, - "and off page 1 even the bonus button follows the page: the conjunct 1897 found missing" + "and off page 1 even the bonus button follows the page" ); s.set_bonus_bar_offset(0); assert_eq!( @@ -1701,7 +1701,7 @@ fn bonus_bar_slides_up_with_sound_and_down_without() { vec![(73, false)], "the BONUS branch of stock ActionButtonUp passes a literal 0 for onSelf (ActionButton.lua:38) \ — in a stance, ALT-1 drives the bonus page without self-cast; the reference's own rule, \ - which 1745's expectation of (73, true) had smoothed over" + not the (73, true) a self-cast would give" ); s.run("BonusActionBarFrame:Hide() ActionButtonDown(1) ActionButtonUp(1, 1)") .unwrap(); diff --git a/crates/benilla-app/src/ui_script/addons.rs b/crates/benilla-app/src/ui_script/addons.rs index e0c94cfa..f40efae2 100644 --- a/crates/benilla-app/src/ui_script/addons.rs +++ b/crates/benilla-app/src/ui_script/addons.rs @@ -2126,7 +2126,7 @@ mod tests { assert_eq!( script.eval::("return IsAddOnLoaded('Base') == 1").ok(), Some(true), - "a startup-loaded addon must read as loaded, or every LoadOnDemand dependent of it answers DEP_NOT_DEMAND_LOADED" + "a startup-loaded addon reads as loaded, else a dependent answers DEP_NOT_DEMAND_LOADED" ); assert_eq!( script.eval::("return OptsRan == nil").ok(), diff --git a/crates/benilla-app/src/ui_script/bagnon_render_tests.rs b/crates/benilla-app/src/ui_script/bagnon_render_tests.rs index dba55106..76cd5553 100644 --- a/crates/benilla-app/src/ui_script/bagnon_render_tests.rs +++ b/crates/benilla-app/src/ui_script/bagnon_render_tests.rs @@ -314,7 +314,7 @@ fn bagnon_draws_a_slot_for_every_bag_slot() { assert_eq!( bagnon_slot_quads(&mut s), 28, - "every live slot must actually be DRAWN (16 backpack + 12 keyring) — the director saw a \ + "every live slot must actually be DRAWN (16 backpack + 12 keyring) — broken, it drew a \ title and a gold line and nothing else, while every column of the addon survey called \ this addon fine" ); @@ -424,7 +424,7 @@ fn the_item_button_helpers_paint_a_slots_icon_and_count() { assert_eq!( &tint[..3], &[0.5, 0.5, 0.5], - "a locked item greys out (ref: `elseif not r or not shaderSupported`)" + "a locked item keeps the caller's 0.5 grey (ref: with a shader, r, g, b stay as passed)" ); // A count of 1 hides the label again (`ItemButtonTemplate.lua:12`). @@ -906,7 +906,7 @@ fn a_stack_count_wears_the_font_object_its_font_attr_names() { ); assert_eq!( shadow, None, - "and NO drop shadow: NumberFontNormal has no in 1.12 either (Fonts.xml:226). \ + "and NO drop shadow: NumberFontNormal has no in 1.12 either (Fonts.xml:150). \ The readability is the outline; adding a shadow here would be a divergence" ); } @@ -1308,6 +1308,6 @@ fn the_backpack_button_lit_state_with_bagnon_holding_the_bags() { !s.eval::("return MainMenuBarBackpackButton:GetChecked() and true or false") .unwrap(), "open by click ⇒ unlit: the stock BackpackButton_OnClick tail's native scan is the last \ - word, as on the reference (Bug 7's divergence retired with the stock bag bar, 1783)" + word, as on the reference, since the bag bar is the stock file" ); } diff --git a/crates/benilla-app/src/ui_script/bank_tests.rs b/crates/benilla-app/src/ui_script/bank_tests.rs index 8e81f8f4..7654e223 100644 --- a/crates/benilla-app/src/ui_script/bank_tests.rs +++ b/crates/benilla-app/src/ui_script/bank_tests.rs @@ -71,7 +71,7 @@ fn bankframe_opened_shows_and_sets_the_title() { ); assert!( !bag_open(&s, 0), - "the reference's bank leaves your bags alone (0561 is the vendor's, not the bank's)" + "the reference's bank leaves your bags alone (opening them is the vendor's, not the bank's)" ); assert!( s.eval::("return GetLeftFrame() == BankFrame") @@ -117,7 +117,7 @@ fn bankframe_closed_queues_close_closes_open_popouts_and_plays_the_close_kit() { ); assert!( s.take_bank_close(), - "OnHide queued CloseBankFrame() — the client-side close intent (no wire opcode, decision 0604)" + "OnHide queued CloseBankFrame() — the client-side close intent (no wire opcode)" ); assert!( s.eval::("return GetLeftFrame() == nil").unwrap(), diff --git a/crates/benilla-app/src/ui_script/basic_controls_tests.rs b/crates/benilla-app/src/ui_script/basic_controls_tests.rs index e2a23153..5f5a4f69 100644 --- a/crates/benilla-app/src/ui_script/basic_controls_tests.rs +++ b/crates/benilla-app/src/ui_script/basic_controls_tests.rs @@ -76,7 +76,7 @@ fn error_message_is_the_installed_handler_and_the_host_channel_stays_sighted() { assert!( s.eval::("return geterrorhandler() == _ERRORMESSAGE") .unwrap(), - "the reference's own default handler is installed (1305)" + "the reference's own default handler is installed" ); // An addon's pcall wrapper reports through `geterrorhandler()`, which pops the dialog. s.run(r#"geterrorhandler()("reported")"#).unwrap(); diff --git a/crates/benilla-app/src/ui_script/battlefield_tests.rs b/crates/benilla-app/src/ui_script/battlefield_tests.rs index d65d9b8e..9b7b238a 100644 --- a/crates/benilla-app/src/ui_script/battlefield_tests.rs +++ b/crates/benilla-app/src/ui_script/battlefield_tests.rs @@ -240,6 +240,6 @@ fn the_list_rows_carry_the_queue_status() { .unwrap(), None, "an un-queued row's status line is blank, and a blank FontString reads back NIL \ - (`FontString:GetText 0x79d690` substitutes — decision 2110)" + (`FontString:GetText 0x79d690` substitutes nil)" ); } diff --git a/crates/benilla-app/src/ui_script/bottom_hud_tests.rs b/crates/benilla-app/src/ui_script/bottom_hud_tests.rs index c757bd4f..b5ffab73 100644 --- a/crates/benilla-app/src/ui_script/bottom_hud_tests.rs +++ b/crates/benilla-app/src/ui_script/bottom_hud_tests.rs @@ -89,9 +89,9 @@ fn no_shipped_file_declares_its_own_copy_of_a_managed_offset() { } assert!( offences.is_empty(), - "a managed offset is owned by UIParent.xml's manage pass and may only be READ elsewhere \ + "a managed offset is owned by UIParent.lua's manage pass and may only be READ elsewhere \ (fall back inline at the point of use — `local y = CONTAINER_OFFSET_Y or 70` — never by \ - assigning a copy, which goes stale the moment a bar is raised; decision 1499):\n{}", + assigning a copy, which goes stale the moment a bar is raised):\n{}", offences.join("\n") ); } @@ -137,7 +137,7 @@ const BOTTOM_EXEMPT: &[(&str, &str)] = &[ "ItemRefTooltip", "the reference's own answer, matched exactly (ItemRef.xml l.4): frameStrata HIGH + \ toplevel + movable at BOTTOM +80. A linked-item window lands ABOVE the HIGH bars rather \ - than clearing them (decision 1318), and the player drags it where they want", + than clearing them, and the player drags it where they want", ), ( "ChatFrame3", @@ -153,8 +153,8 @@ const BOTTOM_EXEMPT: &[(&str, &str)] = &[ "the world map's full-screen cover (WorldMapFrame.xml) — TOPLEFT+BOTTOMRIGHT is how it \ fills the screen, not a seat in the contested band, and clearance is the opposite of \ what it wants: a blackout lifted over the action bars would leave a strip of world \ - showing under the map. It joins this population at all only because decision 1757 took \ - its parent=UIParent away, which is what lets it survive the UIParent:Hide() that \ + showing under the map. It joins this population at all only because it has no \ + parent=UIParent, which is what lets it survive the UIParent:Hide() that \ showing the map performs", ), ]; @@ -194,8 +194,8 @@ fn every_bottom_anchored_top_level_frame_is_accounted_for() { unaccounted.is_empty(), "these top-level frames anchor to the screen's bottom edge but nothing decides their \ clearance over the action bars. Give each one a row in \ - UIPARENT_MANAGED_FRAME_POSITIONS (the stock UIParent.lua's table, since 1988), or add \ - it to BOTTOM_EXEMPT here with the reason it needs no row (decision 1499):\n{}", + UIPARENT_MANAGED_FRAME_POSITIONS (the stock UIParent.lua's table), or add \ + it to BOTTOM_EXEMPT here with the reason it needs no row:\n{}", unaccounted.join("\n") ); } @@ -328,7 +328,7 @@ fn no_bottom_band_frame_overlaps_a_raised_bar() { !overlaps(bar_rect, v), "with {raised:?} raised, {victim} {v:?} overlaps {bar} {bar_rect:?} — \ something in the bottom band is not clearing the bars. Its seat must come \ - from UIParent_ManageFramePositions, read fresh (decision 1499)." + from UIParent_ManageFramePositions, read fresh." ); } } diff --git a/crates/benilla-app/src/ui_script/character_tests.rs b/crates/benilla-app/src/ui_script/character_tests.rs index d74d394a..67b25a90 100644 --- a/crates/benilla-app/src/ui_script/character_tests.rs +++ b/crates/benilla-app/src/ui_script/character_tests.rs @@ -784,7 +784,7 @@ fn tab_round_trip_with_a_selected_skill_by_point() { click(&mut s, character_tab); assert!( shown(&mut s, "PaperDollFrame"), - "the Character tab switches back (the 2026-07-17 report)" + "the Character tab switches back" ); assert!(!shown(&mut s, "SkillFrame"), "Skills page yields"); diff --git a/crates/benilla-app/src/ui_script/chat_options_tests.rs b/crates/benilla-app/src/ui_script/chat_options_tests.rs index b8b22389..2c2ec228 100644 --- a/crates/benilla-app/src/ui_script/chat_options_tests.rs +++ b/crates/benilla-app/src/ui_script/chat_options_tests.rs @@ -195,7 +195,7 @@ fn the_background_row_opens_the_picker_and_its_opacity_slider_drives_the_window( assert!( s.eval::("return OpacitySliderFrame:IsVisible()") .unwrap(), - "and the picker wears its opacity slider — B246's 'background slider'" + "and the picker wears its opacity slider — the chat window's 'background slider'" ); assert_eq!( s.eval::("return OpacitySliderFrame:GetValue()") diff --git a/crates/benilla-app/src/ui_script/chat_tests.rs b/crates/benilla-app/src/ui_script/chat_tests.rs index 2119accf..556f462b 100644 --- a/crates/benilla-app/src/ui_script/chat_tests.rs +++ b/crates/benilla-app/src/ui_script/chat_tests.rs @@ -1144,7 +1144,7 @@ fn a_quick_exit_and_reentry_keeps_the_plates_hover_fade() { assert!( bare.eval::("return ChatFrame1Tab:IsVisible() and ChatFrame1.oldAlpha == nil and ChatFrame1.hover == 1") .unwrap(), - "the trapped state the director described: tab up, oldAlpha nil, hover stuck" + "the trapped state: tab up, oldAlpha nil, hover stuck" ); // The shipped interface, with the guard the manifest load installs. diff --git a/crates/benilla-app/src/ui_script/color_picker_tests.rs b/crates/benilla-app/src/ui_script/color_picker_tests.rs index bb8a8f7a..99198aa0 100644 --- a/crates/benilla-app/src/ui_script/color_picker_tests.rs +++ b/crates/benilla-app/src/ui_script/color_picker_tests.rs @@ -392,8 +392,8 @@ fn a_dropdown_row_with_has_color_swatch_opens_the_picker_and_cancel_restores() { -- The anchor needs a POSITION. `ToggleDropDownMenu` anchors the list to this frame and then -- guards on `listFrame:GetCenter()`, hiding the list again and returning when it is nil -- (ref UIDropDownMenu.lua:624-631) — so an unplaced dropdown opens no menu in the real - -- client either. Our deleted transcription carried no such guard and showed it regardless, - -- which is the only reason this fixture ever worked unanchored. + -- client either. The guard is why this fixture places the dropdown: unanchored, the stock + -- file hides the list again at once and the test would see no menu at all. dd:SetPoint("CENTER", 0, 0) UIDropDownMenu_Initialize(dd, function() local info = {} diff --git a/crates/benilla-app/src/ui_script/combat_text_tests.rs b/crates/benilla-app/src/ui_script/combat_text_tests.rs index fb479c17..c74d8a63 100644 --- a/crates/benilla-app/src/ui_script/combat_text_tests.rs +++ b/crates/benilla-app/src/ui_script/combat_text_tests.rs @@ -145,7 +145,7 @@ fn combat_text_crit_pops_and_parks() { let h = extracted_text_height(&mut s, "-64").expect("crit still drawn"); assert!( h > 30.0 && h <= 60.0, - "crit pop animates the height UNCAPPED past 32 (decision 0582), got {h}" + "crit pop animates the height UNCAPPED past 32, got {h}" ); assert!(s.errors().is_empty(), "script errors: {:?}", s.errors()); } diff --git a/crates/benilla-app/src/ui_script/death_tests.rs b/crates/benilla-app/src/ui_script/death_tests.rs index 1c900a88..9847b163 100644 --- a/crates/benilla-app/src/ui_script/death_tests.rs +++ b/crates/benilla-app/src/ui_script/death_tests.rs @@ -326,7 +326,7 @@ fn xp_loss_cancel_then_reconfirm_reshows_with_the_alert_dress() { s.fire_event("CONFIRM_XP_LOSS", vec![]); assert!( s.eval::("return StaticPopup1:IsVisible()").unwrap(), - "a fresh confirm re-shows after a Cancel (B80's deadlock)" + "a fresh confirm re-shows after a Cancel (no deadlock)" ); s.run("StaticPopup_Hide(\"XP_LOSS\")").unwrap(); s.run(concat!( diff --git a/crates/benilla-app/src/ui_script/delete_item_tests.rs b/crates/benilla-app/src/ui_script/delete_item_tests.rs index 2eca9f26..6b467d94 100644 --- a/crates/benilla-app/src/ui_script/delete_item_tests.rs +++ b/crates/benilla-app/src/ui_script/delete_item_tests.rs @@ -178,7 +178,7 @@ fn delete_item_confirm_no_clears_without_destroying() { s.tick(0.01); // ITEM_LOCK_CHANGED fires from the pending queue at the next tick assert!( s.eval::("return repaints").unwrap() >= 1, - "the clear's ITEM_LOCK_CHANGED repaints the bag (the stuck-darkened slot, 0218)" + "the clear's ITEM_LOCK_CHANGED repaints the bag (no stuck-darkened slot)" ); assert!( !s.eval::("local _, _, locked = GetContainerItemInfo(0, 1) return locked") @@ -187,7 +187,7 @@ fn delete_item_confirm_no_clears_without_destroying() { ); assert!( !desaturated(&mut s, &slot1), - "…and the repaint un-darkened it — the 0218 stuck-dark slot" + "…and the repaint un-darkened it — no stuck-dark slot" ); assert!(s.errors().is_empty(), "script errors: {:?}", s.errors()); } diff --git a/crates/benilla-app/src/ui_script/escape_tests.rs b/crates/benilla-app/src/ui_script/escape_tests.rs index 6445cabf..26c79cd1 100644 --- a/crates/benilla-app/src/ui_script/escape_tests.rs +++ b/crates/benilla-app/src/ui_script/escape_tests.rs @@ -355,7 +355,7 @@ fn escape_ladder_cast_then_windows_then_target_one_eater_per_press() { ); assert!( !s.take_target_clear(), - "the same press must NOT also drop the target (the raw-key double-fire 0449 retires)" + "the same press must NOT also drop the target (no raw-key double-fire)" ); // Press 2, the cast over: `CloseAllWindows` eats it. diff --git a/crates/benilla-app/src/ui_script/extract/mod.rs b/crates/benilla-app/src/ui_script/extract/mod.rs index 70178a66..8afc849a 100644 --- a/crates/benilla-app/src/ui_script/extract/mod.rs +++ b/crates/benilla-app/src/ui_script/extract/mod.rs @@ -1673,7 +1673,7 @@ mod clip_plumb_tests { frame:SetScrollChild(child) local marker = child:CreateTexture(nil, "ARTWORK") marker:SetTexture(1, 0, 0) -- pathless colored quad: no BLP asset needed - marker:SetAllPoints() -- templateless Lua region: no implicit anchor (1310) + marker:SetAllPoints() -- templateless Lua region: no implicit anchor "#, ) .unwrap(); @@ -1759,7 +1759,7 @@ mod clip_plumb_tests { plain:SetWidth(50); plain:SetHeight(50) local m = plain:CreateTexture(nil, "ARTWORK") m:SetTexture(0, 1, 0) - m:SetAllPoints() -- templateless Lua region: no implicit anchor (1310) + m:SetAllPoints() -- templateless Lua region: no implicit anchor "#, ) .unwrap(); @@ -1948,7 +1948,7 @@ mod extract_gate_tests { plain:SetWidth(50); plain:SetHeight(50) marker = plain:CreateTexture(nil, "ARTWORK") marker:SetTexture(1, 0, 0) - marker:SetAllPoints() -- templateless Lua region: no implicit anchor (1310) + marker:SetAllPoints() -- templateless Lua region: no implicit anchor "#, ) } @@ -2157,7 +2157,7 @@ mod extract_gate_tests { plain:SetWidth(50); plain:SetHeight(50) marker = plain:CreateTexture(nil, "ARTWORK") marker:SetTexture(0, 0, 1) - marker:SetAllPoints() -- templateless Lua region: no implicit anchor (1310) + marker:SetAllPoints() -- templateless Lua region: no implicit anchor "#, ); reference.update(); @@ -2216,7 +2216,7 @@ mod extract_gate_tests { plain:SetWidth(50); plain:SetHeight(50) marker = plain:CreateTexture(nil, "ARTWORK") marker:SetTexture(0, 1, 0) - marker:SetAllPoints() -- templateless Lua region: no implicit anchor (1310) + marker:SetAllPoints() -- templateless Lua region: no implicit anchor "#, ); reference.update(); diff --git a/crates/benilla-app/src/ui_script/gate.rs b/crates/benilla-app/src/ui_script/gate.rs index 78cb56b7..4535c63f 100644 --- a/crates/benilla-app/src/ui_script/gate.rs +++ b/crates/benilla-app/src/ui_script/gate.rs @@ -59,7 +59,7 @@ pub(crate) fn trace(feed: &'static str, inputs: &[(&str, bool)]) { pub(crate) fn audit_push(gate_closed: bool, feed: &str, what: &str) { assert!( !gate_closed, - "feed gate audit (1439): {feed} pushed {what} on a CLOSED gate — \ + "feed gate audit: {feed} pushed {what} on a CLOSED gate — \ an input is missing from its gate" ); } diff --git a/crates/benilla-app/src/ui_script/group_loot_tests.rs b/crates/benilla-app/src/ui_script/group_loot_tests.rs index 48a3af4c..ba90ebb4 100644 --- a/crates/benilla-app/src/ui_script/group_loot_tests.rs +++ b/crates/benilla-app/src/ui_script/group_loot_tests.rs @@ -398,7 +398,7 @@ fn nothing_repaints_a_frame_that_opened_before_its_snapshot() { s.eval::>("return GroupLootFrame1Name:GetText()") .unwrap(), None, - "nothing to paint yet — this is the state B371 reported" + "nothing to paint yet — this is the reported state" ); s.set_loot_rolls(rolls()); diff --git a/crates/benilla-app/src/ui_script/instance_tests.rs b/crates/benilla-app/src/ui_script/instance_tests.rs index 9062b01f..daa6f204 100644 --- a/crates/benilla-app/src/ui_script/instance_tests.rs +++ b/crates/benilla-app/src/ui_script/instance_tests.rs @@ -64,7 +64,7 @@ fn the_self_menu_row_gates_on_the_binding_and_confirms_before_sending() { s.run( r#" -- The stock raid pane concatenates this into each of its eight group headers inside - -- their own OnLoad, so it has to exist before the addon loads (1874). + -- their own OnLoad, so it has to exist before the addon loads. GROUP = "Group" RESET_INSTANCES = "Reset all instances" CONFIRM_RESET_INSTANCES = "Do you really want to reset all of your instances?" diff --git a/crates/benilla-app/src/ui_script/keybindings_tests.rs b/crates/benilla-app/src/ui_script/keybindings_tests.rs index a6d6e904..ab529494 100644 --- a/crates/benilla-app/src/ui_script/keybindings_tests.rs +++ b/crates/benilla-app/src/ui_script/keybindings_tests.rs @@ -421,7 +421,7 @@ fn the_action_bar_abbreviation_is_the_refs_own_getbindingtext() { s.eval::(r#"return GetBindingText("SHIFT-2", "KEY_", 1)"#) .unwrap(), "s-2", - "the director's SHIF… truncation reads s-2 now" + "SHIFT-2 reads s-2, not a SHIF… truncation" ); assert_eq!( s.eval::(r#"return GetBindingText("ALT-Z", "KEY_", 1)"#) @@ -649,7 +649,7 @@ fn the_pet_lane_is_registered_under_the_action_bar_header() { s.eval::>(r#"return SetBinding("MOUSEWHEELUP", "BONUSACTIONBUTTON1")"#) .unwrap(), Some(1), - "a press+release command takes the wheel — the refusal was ours, B265" + "a press+release command takes the wheel — the reference does not refuse it" ); // Search matches display names (the era's `AddSearchTags`), so the query is the row's label. diff --git a/crates/benilla-app/src/ui_script/loot_tests.rs b/crates/benilla-app/src/ui_script/loot_tests.rs index 75053bd7..3eea03dc 100644 --- a/crates/benilla-app/src/ui_script/loot_tests.rs +++ b/crates/benilla-app/src/ui_script/loot_tests.rs @@ -91,7 +91,7 @@ fn shipped_loot_frame_drives_end_to_end() { assert_eq!( load_xml(&s, "Interface\\FrameXML\\LootFrame.xml"), 34, - "the STOCK file's own shape (1751): the window, its portrait overlay and Next/Prev art, \ + "the STOCK file's own shape: the window, its portrait overlay and Next/Prev art, \ four LootButton rows each carrying ItemButtonTemplate's sub-frames, the two pagers, the \ close button, and GroupLootDropDown with the dropdown template's own children. Our \ transcription materialized 10 — a count is a fingerprint of a file, not a property of a \ diff --git a/crates/benilla-app/src/ui_script/manifest.rs b/crates/benilla-app/src/ui_script/manifest.rs index 8b7bf3b3..e0d01c42 100644 --- a/crates/benilla-app/src/ui_script/manifest.rs +++ b/crates/benilla-app/src/ui_script/manifest.rs @@ -290,7 +290,7 @@ mod tests { for name in super::super::content::shipped_files() { assert!( !reference_ui::is_chain_entry(name), - "assets/ui is flat by construction, but ships {name} — a manifest entry with a separator is read as a file to source off the player's install" + "assets/ui is flat, but ships {name}: a separator makes it a file off the install" ); } } diff --git a/crates/benilla-app/src/ui_script/multibar_stance_tests.rs b/crates/benilla-app/src/ui_script/multibar_stance_tests.rs index cc36af4a..2b9f8941 100644 --- a/crates/benilla-app/src/ui_script/multibar_stance_tests.rs +++ b/crates/benilla-app/src/ui_script/multibar_stance_tests.rs @@ -70,7 +70,7 @@ fn shipped_multibars_drive_end_to_end() { let frames = super::test_ui::load_ui(&s, "Interface\\FrameXML\\MultiActionBars.xml"); assert_eq!( frames, 100, - "what stock MultiActionBars.xml declares (1938): the four bar frames and their 48 buttons, \ + "what stock MultiActionBars.xml declares: the four bar frames and their 48 buttons, \ each with a $parentCooldown — the same 100 ours built for the same seats" ); @@ -1611,7 +1611,7 @@ fn a_forms_state_change_leaves_the_shelf_down_over_the_raised_bar() { for region in shelf { assert!( !shown(&s, region), - "{region}: the director's plate — the shelf re-shown over the raised bar" + "{region}: the shelf re-shown over the raised bar" ); } assert_eq!(ring(&s), 50.0); diff --git a/crates/benilla-app/src/ui_script/options_tests.rs b/crates/benilla-app/src/ui_script/options_tests.rs index 0a892c1b..3c11b97f 100644 --- a/crates/benilla-app/src/ui_script/options_tests.rs +++ b/crates/benilla-app/src/ui_script/options_tests.rs @@ -2159,7 +2159,7 @@ fn a_hovered_row_raises_its_1_12_description_on_the_era_seat() { assert_eq!( s.eval::("return GameTooltip:NumLines()").unwrap(), 1, - "the description ALONE — the era's white name line is cut (1054)" + "the description ALONE — the era's white name line is cut" ); // The era seat, `DefaultTooltipMixin`'s `ANCHOR_RIGHT` at x -10: BOTTOMLEFT on the label // region's TOPRIGHT, 10 back. @@ -2589,7 +2589,7 @@ fn defaults_resets_the_combat_page_to_the_shipped_assignments() { assert_eq!( s.eval::("return SHOW_COMBAT_TEXT").unwrap(), "0", - "the master walks back too — the reference's own value since 1804" + "the master walks back too — the reference's own value" ); assert_eq!( s.eval::("return COMBAT_TEXT_SHOW_AURAS").unwrap(), @@ -3280,7 +3280,7 @@ fn the_defaults_button_is_armed_by_rows_not_by_a_category() { .unwrap(); assert!( has_rows || key == "Keybindings", - "{key} opens onto nothing — every category leads somewhere since 1139" + "{key} opens onto nothing — every category leads somewhere" ); s.run(&format!("BenillaOptionsFrameCategoryListRow{key}:Click()")) .unwrap(); diff --git a/crates/benilla-app/src/ui_script/panel_tests.rs b/crates/benilla-app/src/ui_script/panel_tests.rs index 6ab8f24a..10ce0c98 100644 --- a/crates/benilla-app/src/ui_script/panel_tests.rs +++ b/crates/benilla-app/src/ui_script/panel_tests.rs @@ -45,7 +45,7 @@ fn shipped_gossip_frame_drives_end_to_end() { assert_eq!( load_xml(&s, "Interface\\FrameXML\\GossipFrame.xml"), 43, - "the stock file's own shape (1751) — ours materialized 41" + "the stock file's own shape — ours materialized 41" ); s.resolve(); @@ -961,7 +961,7 @@ fn an_addons_own_frame_registered_in_uipanelwindows_takes_the_left_slot() { /// The registry rows as `UIParent.lua:14-50` writes them. An unregistered frame opens with a bare /// `Show` and takes no slot (`:658-661`), so a missing row lets the next panel seat over it. #[test] -fn the_1507_registry_rows_match_the_reference_bytes() { +fn the_panel_registry_rows_match_the_reference_bytes() { let _data = benilla_formats::wow_data_or_skip!(); let s = UiScript::new().unwrap(); load_xml(&s, r"Interface\FrameXML\MoneyFrame.lua"); diff --git a/crates/benilla-app/src/ui_script/perf_bar_tests.rs b/crates/benilla-app/src/ui_script/perf_bar_tests.rs index 095a8ac8..8ac72e4c 100644 --- a/crates/benilla-app/src/ui_script/perf_bar_tests.rs +++ b/crates/benilla-app/src/ui_script/perf_bar_tests.rs @@ -245,7 +245,7 @@ fn hovering_the_meter_shows_the_live_latency() { assert_eq!( newbie_line_color(&mut s), Some([1.0, 0.82, 0.0, 1.0]), - "NORMAL_FONT_COLOR (Fonts.xml l.37)" + "NORMAL_FONT_COLOR (Fonts.xml l.15)" ); // Still hovering: the next beat rewrites the plate (`MainMenuBar.xml:388`). diff --git a/crates/benilla-app/src/ui_script/questlog_tests.rs b/crates/benilla-app/src/ui_script/questlog_tests.rs index 00d96e88..f02dd9ba 100644 --- a/crates/benilla-app/src/ui_script/questlog_tests.rs +++ b/crates/benilla-app/src/ui_script/questlog_tests.rs @@ -477,8 +477,8 @@ fn watch_guards_no_op_without_erroring() { assert_eq!( s.eval::("return GetQuestLogSelection()").unwrap(), 1, - "a shift-click never selects — stock QuestLogTitleButton_OnClick's shift branch returns \ - before the plain-click arm's QuestLog_SetSelection (QuestLogFrame.lua:472-500)" + "a guarded shift-click never selects — each guard's `return` in the stock shift branch \ + comes before the plain-click arm's QuestLog_SetSelection (QuestLogFrame.lua:472-500)" ); // Fill the five watches with quests 2-6: the objectives guard is the click handler's diff --git a/crates/benilla-app/src/ui_script/quiver_tests.rs b/crates/benilla-app/src/ui_script/quiver_tests.rs index eb9be9a7..006ad2d1 100644 --- a/crates/benilla-app/src/ui_script/quiver_tests.rs +++ b/crates/benilla-app/src/ui_script/quiver_tests.rs @@ -174,7 +174,7 @@ fn quiver_publishes_its_global_functions_for_a_hunter() { s.eval::("return type(Quiver.CastPetAction)") .unwrap(), "function", - "B267: the addon's own field is nil because its VARIABLES_LOADED handler died \ + "the addon's own field is nil because its VARIABLES_LOADED handler died \ before publishing it — errors so far: {:#?}", s.errors() ); diff --git a/crates/benilla-app/src/ui_script/reference_ui.rs b/crates/benilla-app/src/ui_script/reference_ui.rs index ae243498..50a7fa63 100644 --- a/crates/benilla-app/src/ui_script/reference_ui.rs +++ b/crates/benilla-app/src/ui_script/reference_ui.rs @@ -363,7 +363,7 @@ mod tests { .collect(); println!( - "\n=== 1751 migration readiness — {} stock windows ===", + "\n=== migration readiness — {} stock windows ===", stock.len() ); println!( @@ -654,7 +654,7 @@ mod tests { out }; - println!("\n=== 1751 gap report — what each unmigrated window would cost ==="); + println!("\n=== gap report — what each unmigrated window would cost ==="); #[allow(clippy::type_complexity)] // (blockers, file, engine, fx, method, load errors) let mut rows: Vec<( usize, @@ -1112,7 +1112,7 @@ mod tests { "KeyRingButtonIDToInvSlotID", "an engine binding (`1.12-globals.tsv`). `ContainerFrame.lua:617` hovers a KEYRING \ slot with it, so the raise needs the keyring open and a key hovered. Ours drives \ - keyring tooltips through `ContainerFrameAdapters.xml`'s wrapper (0765), which is \ + keyring tooltips through `ContainerFrameAdapters.xml`'s wrapper, which is \ why nothing has hit it — the wrapper answers first for our own rows.", ), ( @@ -1122,7 +1122,7 @@ mod tests { method/net-send) of the pre-1.12 skill-point purchase UI. the detail bar's LearnSkillButton calls it, and \ that button shows only while `UnitCharacterPoints`'s second value or a row's \ step/rank cost is non-zero — which no 1.12 server sends. Unreachable until the \ - skill-point wire exists; not built (1956).", + skill-point wire exists; not built.", ), ( "SkillFrame.xml", @@ -1131,7 +1131,7 @@ mod tests { method/net-send) of the pre-1.12 skill-point purchase UI. the detail bar's RightArrow calls it, and \ that button shows only while `UnitCharacterPoints`'s second value or a row's \ step/rank cost is non-zero — which no 1.12 server sends. Unreachable until the \ - skill-point wire exists; not built (1956).", + skill-point wire exists; not built.", ), ( "SkillFrame.xml", @@ -1140,7 +1140,7 @@ mod tests { method/net-send) of the pre-1.12 skill-point purchase UI. the detail bar's LeftArrow calls it, and \ that button shows only while `UnitCharacterPoints`'s second value or a row's \ step/rank cost is non-zero — which no 1.12 server sends. Unreachable until the \ - skill-point wire exists; not built (1956).", + skill-point wire exists; not built.", ), ( "DurabilityFrame.xml", @@ -1155,8 +1155,8 @@ mod tests { "one of the GM survey's four engine verbs, none built: the survey window opens on \ GMSURVEY_DISPLAY, which the stock HelpFrame.lua registers and nothing fires — the \ trigger is ticket status 3 on SMSG_GMTICKET_GETTICKET, which vmangos never sends \ - (1889; the producer gate carries the event). Gated since the addon became a reached \ - LoadOnDemand row (1967).", + (the producer gate carries the event). Gated as the addon is a reached \ + LoadOnDemand row.", ), ( "Blizzard_GMSurveyUI.xml", @@ -1164,8 +1164,8 @@ mod tests { "one of the GM survey's four engine verbs, none built: the survey window opens on \ GMSURVEY_DISPLAY, which the stock HelpFrame.lua registers and nothing fires — the \ trigger is ticket status 3 on SMSG_GMTICKET_GETTICKET, which vmangos never sends \ - (1889; the producer gate carries the event). Gated since the addon became a reached \ - LoadOnDemand row (1967).", + (the producer gate carries the event). Gated as the addon is a reached \ + LoadOnDemand row.", ), ( "Blizzard_GMSurveyUI.xml", @@ -1173,8 +1173,8 @@ mod tests { "one of the GM survey's four engine verbs, none built: the survey window opens on \ GMSURVEY_DISPLAY, which the stock HelpFrame.lua registers and nothing fires — the \ trigger is ticket status 3 on SMSG_GMTICKET_GETTICKET, which vmangos never sends \ - (1889; the producer gate carries the event). Gated since the addon became a reached \ - LoadOnDemand row (1967).", + (the producer gate carries the event). Gated as the addon is a reached \ + LoadOnDemand row.", ), ( "Blizzard_GMSurveyUI.xml", @@ -1182,14 +1182,14 @@ mod tests { "one of the GM survey's four engine verbs, none built: the survey window opens on \ GMSURVEY_DISPLAY, which the stock HelpFrame.lua registers and nothing fires — the \ trigger is ticket status 3 on SMSG_GMTICKET_GETTICKET, which vmangos never sends \ - (1889; the producer gate carries the event). Gated since the addon became a reached \ - LoadOnDemand row (1967).", + (the producer gate carries the event). Gated as the addon is a reached \ + LoadOnDemand row.", ), ( "StaticPopup.xml", "ReplaceTradeEnchant", "a registered 1.12 binding (`0x48d330`) whose body is not yet known; it is built \ - once it is (1960). Reached by TRADE_REPLACE_ENCHANT's Accept, an event this engine does not fire yet.", + once it is. Reached by TRADE_REPLACE_ENCHANT's Accept, an event this engine does not fire yet.", ), ]; @@ -1832,8 +1832,8 @@ mod tests { UNPRODUCEABLE rather than unbuilt: the 5875 client registers the event and \ signals it from NOWHERE (a whole-image census: no signal site passes its id, \ `0x11d`), so StaticPopupDialogs[\"TRADE\"] is \ - dead code THERE too. benilla wired the dialog up once and took it back out — \ - decision 1764. Producing this would be a divergence, not a fix", + dead code THERE too, and benilla leaves it unproduced: \ + producing this would be a divergence, not a fix", ), ( "TRADE_REPLACE_ENCHANT", @@ -1844,7 +1844,7 @@ mod tests { "CLOSE_WORLD_MAP", "WorldMapFrame.lua — the engine-side close the reference fires when the map is \ shut from outside its own frame; benilla closes the map through the frame's own \ - hide path only (1980)", + hide path only", ), ("DISPLAY_SIZE_CHANGED", "the four paperdoll files"), ( @@ -1860,11 +1860,11 @@ mod tests { ("PLAYER_DAMAGE_DONE_MODS", "PaperDollFrame.lua"), ( "SHOW_COMPARE_TOOLTIP", - "PaperDollFrame.lua — the second `TRADE_REQUEST` (decision 1764): event 377 is \ + "PaperDollFrame.lua — the second `TRADE_REQUEST`: event 377 is \ registered in 5875 and signalled from NOWHERE (zero fire sites in the whole \ image), so this listener is dead code THERE \ - too. benilla fired it from 0283 until 2202, then drove the plates itself on a \ - shift-held hover until 2210; both were supersets. Nothing in this engine seats a \ + too. benilla once fired it, and later drove the plates itself on a \ + shift-held hover; both were supersets. Nothing in this engine seats a \ shopping plate now — the reference's own callers do (`MerchantFrame.xml:63-80`, \ the auction rows), which is the whole of the compare in 1.12.1. Producing this \ event would be a divergence, not a fix", @@ -1875,7 +1875,7 @@ mod tests { "UNIT_QUEST_LOG_CHANGED", "QuestLogFrame.lua — a party member's quest-log fields changing (the reference \ fires it off the unit's PLAYER_QUEST_LOG_* descriptor updates); benilla's unit \ - feed does not derive it yet (1944)", + feed does not derive it yet", ), ( "UNIT_MODEL_CHANGED", @@ -1885,7 +1885,7 @@ mod tests { ( "ZONE_UNDER_ATTACK", "ChatFrame.lua — the reference's `SMSG_ZONE_UNDER_ATTACK` line (\"%s is under \ - attack!\"); the wire handler is not built (1948)", + attack!\"); the wire handler is not built", ), ]; @@ -2033,7 +2033,7 @@ mod tests { assert!( surprises.is_empty(), "a chain file listens for an event NOTHING fires, and it is not one of the known gaps \ - — this is 1819 arriving: a window migration brought a listener with no producer:\n {}", + — a window migration brought a listener with no producer:\n {}", surprises.join("\n ") ); diff --git a/crates/benilla-app/src/ui_script/resolve_bench.rs b/crates/benilla-app/src/ui_script/resolve_bench.rs index c4385436..c8dce186 100644 --- a/crates/benilla-app/src/ui_script/resolve_bench.rs +++ b/crates/benilla-app/src/ui_script/resolve_bench.rs @@ -157,7 +157,7 @@ fn a_tooltip_content_change_costs_exactly_one_layout_solve() { s.layout_derivations() - derives_before, 0, "a settled tooltip whose CONTENT changes must not re-derive the layout graph — the line \ - pool is already built, so nothing structural is happening (decision 1388)" + pool is already built, so nothing structural is happening" ); // The answers landed in that one solve, or the plate would lag its text by a frame. assert_eq!( @@ -199,7 +199,7 @@ fn the_settled_shipped_ui_costs_no_gate_walk_on_a_quiet_frame() { 0, "20 idle frames of the shipped UI cost {} whole-roster gate walks — something in \ assets/ui/ is writing a layout input every frame with nothing happening. Name it with \ - WOW_LAYOUT_TOUCH_TRACE=: on a live run (decision 1385).", + WOW_LAYOUT_TOUCH_TRACE=: on a live run.", s.layout_gate_walks() - before ); } @@ -247,7 +247,7 @@ fn a_region_moving_every_frame_costs_one_gate_walk_on_the_shipped_ui() { assert!( frames < 50 && regions < 200, "step {step}: moving ONE region solved {frames} frames and swept {regions} regions — \ - the scope is tracking the graph, not the change (decision 1350)" + the scope is tracking the graph, not the change" ); } let walks = s.layout_gate_walks() - walks_before; @@ -255,9 +255,9 @@ fn a_region_moving_every_frame_costs_one_gate_walk_on_the_shipped_ui() { assert_eq!( walks, 10, "10 frames of one moving region must cost 10 whole-roster gate walks — one each. 30 \ - means the fingerprint is hashing the 0294 seeds again, so every solve outgrows the value \ - it stores and neither it nor the settling walk behind it can close tier 1 (decision \ - 1385). At the shipped roster each extra walk is ~1 ms of CPU on every frame of every cast." + means the fingerprint is hashing the dirty seeds again, so every solve outgrows the \ + value it stores and neither it nor the settling walk behind it can close tier 1. At the \ + shipped roster each extra walk is ~1 ms of CPU on every frame of every cast." ); assert_eq!( solves, 10, @@ -323,7 +323,7 @@ fn a_region_moving_every_frame_costs_no_graph_derivation_on_the_shipped_ui() { re-filtered for liveness, all 10,438 anchored regions re-hashed and their edges rebuilt: \ ~1.48 ms of CPU at the Stormwind pin, on every frame anything moves. A write site is \ falling back to the conservative `Model::touch_layout` where it could name its node \ - (decision 1388)." + instead." ); } @@ -458,7 +458,7 @@ fn a_tooltip_line_flipping_wrapped_to_plain_costs_no_graph_derivation() { "10 hovers between a wrapped line and a plain one derived the layout graph {derives} \ times. The wrap-pin write in `tooltip::append_line` moves ONE region's explicit size and \ must name it (`touch_layout_region`); the conservative `touch_layout` re-derives the \ - whole roster on every hover (decision 1388)." + whole roster on every hover." ); } @@ -517,7 +517,7 @@ fn a_hover_sweep_across_owners_costs_no_graph_derivation() { "24 hovers across 12 owners derived the layout graph {derives} times — one per slot \ crossed. `SetOwner` re-points ONE node's anchor and must patch that node's edges \ (`Model::touch_layout_retarget_frame`); the conservative touch re-derives the whole \ - roster on every slot the cursor passes over (decisions 1388, 1625)." + roster on every slot the cursor passes over." ); } @@ -575,10 +575,10 @@ fn an_action_bar_hover_sweep_costs_no_graph_derivation() { let derives = s.layout_derivations() - derives_before; assert_eq!( derives, 0, - "24 action-bar hovers derived the layout graph {derives} times. The `ClearAllPoints()` on \ - `GameTooltip_SetDefaultAnchor`'s next line is a retarget to the EMPTY target set and must \ - name its node like any other (decision 1630, extending 1625; 2176 moved the emptying \ - itself off `SetOwner`'s ANCHOR_NONE arm, which the reference leaves alone)." + "24 action-bar hovers derived the layout graph {derives} times. `SetOwner`'s ANCHOR_NONE \ + arm clears the anchors (`0x52fec2 call 0x767ed0`), and so does the `ClearAllPoints()` \ + on `GameTooltip_SetDefaultAnchor`'s next line: each is a retarget to the EMPTY target \ + set and must name its node like any other." ); } @@ -644,6 +644,6 @@ fn a_bag_addon_hover_sweep_costs_no_graph_derivation() { derives, 0, "24 bag-slot hovers derived the layout graph {derives} times — one per slot crossed. \ `ClearAllPoints` drops a node's whole anchor-target set, which is a retarget onto the \ - EMPTY set and names its node like any other (decision 2114, completing 1625/1630)." + EMPTY set and names its node like any other." ); } diff --git a/crates/benilla-app/src/ui_script/screenshot_tests.rs b/crates/benilla-app/src/ui_script/screenshot_tests.rs index 17044a0c..91e00b09 100644 --- a/crates/benilla-app/src/ui_script/screenshot_tests.rs +++ b/crates/benilla-app/src/ui_script/screenshot_tests.rs @@ -55,7 +55,7 @@ fn the_capture_is_asked_for_silently_and_only_the_answer_speaks() { ); assert!( !shown(&s), - "NOTHING is on screen at the moment of capture — this is B261's whole contract" + "NOTHING is on screen at the moment of capture — this is the whole contract" ); // The engine's answer, one or more frames later. diff --git a/crates/benilla-app/src/ui_script/session.rs b/crates/benilla-app/src/ui_script/session.rs index 396f9632..20e84ca8 100644 --- a/crates/benilla-app/src/ui_script/session.rs +++ b/crates/benilla-app/src/ui_script/session.rs @@ -152,7 +152,7 @@ mod tests { offenders.is_empty(), "these memos outlive the VM they are about — wrap them in \ `crate::ui_script::VmMemo<…>` and read them through `.get(&script)`, or add them to \ - `EXEMPT` with the reason they are not memory about the VM (decision 1290):\n {}", + `EXEMPT` with the reason they are not memory about the VM:\n {}", offenders.join("\n ") ); } diff --git a/crates/benilla-app/src/ui_script/shape_gate.rs b/crates/benilla-app/src/ui_script/shape_gate.rs index 78e08fc9..c21f56ec 100644 --- a/crates/benilla-app/src/ui_script/shape_gate.rs +++ b/crates/benilla-app/src/ui_script/shape_gate.rs @@ -569,7 +569,7 @@ fn every_query_binding_answers_the_reference_s_return_kinds() { if let Some((_, known, _)) = KINDS_NOT_YET_ASSERTED.iter().find(|(n, ..)| n == name) { assert_eq!( *known, observed, - "{name} is on the not-yet-asserted list at stale kinds — it now answers ({observed})" + "{name}'s not-yet-asserted row is stale: it now answers ({observed})" ); continue; } @@ -680,7 +680,7 @@ fn every_widget_method_answers_the_reference_s_return_kinds() { { assert_eq!( *known, observed, - "{name} is on the widget not-yet-asserted list at stale kinds — it now answers ({observed})" + "{name}'s widget not-yet-asserted row is stale: it now answers ({observed})" ); continue; } diff --git a/crates/benilla-app/src/ui_script/shipped_xml_tests.rs b/crates/benilla-app/src/ui_script/shipped_xml_tests.rs index 4d796070..b154d30d 100644 --- a/crates/benilla-app/src/ui_script/shipped_xml_tests.rs +++ b/crates/benilla-app/src/ui_script/shipped_xml_tests.rs @@ -71,7 +71,7 @@ fn loading_the_shipped_ui_queues_no_sounds() { s.take_sounds(), vec![], "loading the UI played a sound — a load-time handler is ringing; see \ - UnitPopup_HideButtons / UIDropDownMenu_Initialize (decision 1033)" + UnitPopup_HideButtons / UIDropDownMenu_Initialize" ); } @@ -173,7 +173,7 @@ fn the_autocast_brackets_reach_each_buttons_corners() { assert!( (brackets / button - 0.997).abs() < 0.01, "{name}: a {brackets:.1}-unit bracket square on a {button}-unit button is {:.3}x — the \ - pet button's is 0.997x, which is what puts brackets IN the corners (decision 1393)", + pet button's is 0.997x, which is what puts brackets IN the corners", brackets / button ); } @@ -211,7 +211,7 @@ fn the_shine_panes_ask_for_the_rims_we_meant() { (rim / view - 1.024).abs() < 1e-3, "{name}: a {rim}-unit rim in a {view}-unit viewport is {:.3}x, not the pet button's \ 1.024x — a rim that does not reach its own viewport edge is never clipped, and reads \ - as a wash rather than a rim (decisions 1387/1392)", + as a wash rather than a rim", rim / view ); } diff --git a/crates/benilla-app/src/ui_script/spellbook_tests.rs b/crates/benilla-app/src/ui_script/spellbook_tests.rs index cec0fec7..b83a554b 100644 --- a/crates/benilla-app/src/ui_script/spellbook_tests.rs +++ b/crates/benilla-app/src/ui_script/spellbook_tests.rs @@ -489,7 +489,7 @@ fn the_pet_tab_switches_books_and_renders_the_pets_spells() { .collect(); assert!( (br[0] - 71.53).abs() < 0.01 && (br[1] - 71.53).abs() < 0.01, - "brackets are {}x{}, 1393 draws them at 71.53 so the art reaches this button's corners", + "brackets are {}x{}, benilla draws them at 71.53 so the art reaches this button's corners", br[0], br[1] ); @@ -509,11 +509,11 @@ fn the_pet_tab_switches_books_and_renders_the_pets_spells() { .collect(); assert!( (geom[0] - 37.0).abs() < 0.01 && (geom[1] - 37.0).abs() < 0.01, - "shine pane is {geom:?}, expected 37x37 (1393 squares it on the button)" + "shine pane is {geom:?}, expected 37x37 (benilla squares it on the button)" ); assert!( (geom[2] - 1.48).abs() < 0.001, - "shine pane's model scale is {}, expected 1393's 1.48 (the pet button's rim ratio)", + "shine pane's model scale is {}, expected 1.48 (the pet button's rim ratio)", geom[2] ); let dx = s @@ -524,7 +524,7 @@ fn the_pet_tab_switches_books_and_renders_the_pets_spells() { .unwrap(); assert!( dx.abs() < 0.01 && dy.abs() < 0.01, - "shine pane sits at ({dx}, {dy}) inside the button; 1393 squares it on the button so it \ + "shine pane sits at ({dx}, {dy}) inside the button; benilla squares it on the button so it \ is concentric with the brackets — the ref's +1,+1 is what read as a top/right bias" ); @@ -556,7 +556,7 @@ fn the_pet_tab_switches_books_and_renders_the_pets_spells() { assert_eq!( s.eval::("return SpellBook_GetSpellID(1)").unwrap(), 1, - "DO NOT FIX: the ref's pet arm has no page term (decision 1032)" + "DO NOT FIX: the ref's pet arm has no page term" ); // …and Next writes `SPELLBOOK_PAGENUMBERS[selectedSkillLine]` on both books // (`SpellBookFrame.lua:423`), so the pet page stays put. @@ -712,7 +712,7 @@ fn the_macro_editor_takes_a_shift_click_and_only_a_shift_click() { assert_eq!( body(&s), "", - "B248: an UNSHIFTED click must never reach the macro editor (ref l.271 tests shift first)" + "an UNSHIFTED click must never reach the macro editor (ref l.271 tests shift first)" ); assert!(s.cursor_payload().is_none()); diff --git a/crates/benilla-app/src/ui_script/test_ui.rs b/crates/benilla-app/src/ui_script/test_ui.rs index cef010b9..29d22ff6 100644 --- a/crates/benilla-app/src/ui_script/test_ui.rs +++ b/crates/benilla-app/src/ui_script/test_ui.rs @@ -177,7 +177,7 @@ pub(super) const UIPARENT_STAND_INS: &str = r#" LocalizeFrames = LocalizeFrames or function() end updateContainerFrameAnchors = updateContainerFrameAnchors or function() end -- 1.12 keeps UpdateNameplates in UIOptionsFrame.lua, which a kit reaches only at manifest - -- l.21; our own OptionsFrame.xml re-declares it below that (decision 2132). Both are plain + -- l.21; our own OptionsFrame.xml re-declares it below that. Both are plain -- `function X()` writes, so a full kit ends on ours and a short one keeps this no-op. UpdateNameplates = UpdateNameplates or function() end CloseAllBags = CloseAllBags or function() end @@ -224,9 +224,9 @@ pub(super) const UIPARENT_STAND_INS: &str = r#" -- …and every row's ANCHOR TARGET (`anchorTo`, l.1668), which is a different set: the -- keys are the frames being MOVED, the targets are what they move relative to, and -- several targets (`ActionButton1`, `MainMenuBarArtFrame`) are declared in files a - -- one-window kit never loads. An unresolvable name is a RAISE now (decision 2176), so - -- a target the kit is missing aborts `UIParent_ManageFramePositions` mid-pass where it - -- used to anchor to the parent and carry on. + -- one-window kit never loads. An unresolvable name is a RAISE, so a target the kit is + -- missing aborts `UIParent_ManageFramePositions` mid-pass rather than anchoring to + -- the parent and carrying on. if row.anchorTo then table.insert(named, row.anchorTo) end end benilla_seat(named) @@ -238,7 +238,7 @@ pub(super) const UIPARENT_STAND_INS: &str = r#" -- The four options/menu windows `IsOptionFrameOpen` (l.997) and `ToggleGameMenu` (l.1467) -- index unguarded. `IsOptionFrameOpen` is on the path of every window close, so a kit that -- loads no options window raised on the first bag click. In the shipped manifest all four - -- names are real, and since 2177 all three options windows are the REFERENCE's own files, + -- names are real, and all three options windows are the REFERENCE's own files, -- loaded hidden — including `OptionsFrame`, the video window, which used to be our own -- window's name. Ours is `BenillaOptionsFrame` now and is not in this list: it is not a name -- the reference indexes, and the wrappers in `GameMenuFrame.xml` are what tell these two @@ -289,7 +289,7 @@ pub(super) const MULTI_ACTION_BAR_STAND_INS: &str = r#" -- `UIOptionsFrameCheckButtons["SHOW_MULTIBAR1_TEXT"].setFunc`, which needs the row to exist. -- Empty rows on purpose — the real ones carry `index = 33..36, 40`, and a stand-in that -- restated those numbers would be a transcription of the reference's table in a test helper, - -- which is the thing 2115 deleted from `OptionsFrame.xml`. Any kit that reads an index has the + -- which `OptionsFrame.xml` does not carry either. Any kit that reads an index has the -- real window loaded and therefore the real table. for _, key in ipairs({ "SHOW_MULTIBAR1_TEXT", "SHOW_MULTIBAR2_TEXT", "SHOW_MULTIBAR3_TEXT", "SHOW_MULTIBAR4_TEXT", "ALWAYS_SHOW_MULTIBARS_TEXT" }) do @@ -659,7 +659,7 @@ fn world_point(s: &mut UiScript) -> (f32, f32) { ) .expect( "the fixture must load Interface\\FrameXML\\WorldFrame.xml (load_world_frame): a \ - world drop is a click on THAT frame, not on nothing (decision 2089)", + world drop is a click on THAT frame, not on nothing", ); assert_eq!(r.len(), 4, "WorldFrame: unresolved rect {r:?}"); let (steps, mut blockers) = (7, Vec::new()); diff --git a/crates/benilla-app/src/ui_script/trainer_tests.rs b/crates/benilla-app/src/ui_script/trainer_tests.rs index b72b1380..8b564d17 100644 --- a/crates/benilla-app/src/ui_script/trainer_tests.rs +++ b/crates/benilla-app/src/ui_script/trainer_tests.rs @@ -1146,6 +1146,6 @@ return n"; count(&mut s), 5, "the already-known row must LEAVE THE SCREEN, not just the engine's count — this is the \ - director's report: the checkbox moved and the list underneath did not" + reported bug: the checkbox moved and the list underneath did not" ); } diff --git a/crates/benilla-app/src/ui_script/uiparent_tests.rs b/crates/benilla-app/src/ui_script/uiparent_tests.rs index b156b301..4722f458 100644 --- a/crates/benilla-app/src/ui_script/uiparent_tests.rs +++ b/crates/benilla-app/src/ui_script/uiparent_tests.rs @@ -227,7 +227,7 @@ fn the_font_path_globals_are_the_references_own_four() { ] { assert!( s.eval::(&format!("return {name} ~= nil")).unwrap(), - "{name} — ref Fonts.xml assigns it; a dropped line from a transcribed block is how LIGHTYELLOW_FONT_COLOR_CODE went missing" + "{name} — ref Fonts.xml assigns it, and a dropped line leaves it nil" ); } // The value addons splice into strings (`Fonts.xml:13`). diff --git a/crates/benilla-app/src/ui_script/unit_frame_tests.rs b/crates/benilla-app/src/ui_script/unit_frame_tests.rs index b5a1252e..40cf8ccd 100644 --- a/crates/benilla-app/src/ui_script/unit_frame_tests.rs +++ b/crates/benilla-app/src/ui_script/unit_frame_tests.rs @@ -298,7 +298,7 @@ fn unit_combat_drives_the_player_hit_indicator() { assert_eq!( extracted_text_height(&mut s, "64"), Some(45.0), - "×1.5 crit height, UNCAPPED past 32 (decision 0582's regime split)" + "×1.5 crit height, UNCAPPED past 32" ); s.fire_event("UNIT_COMBAT", ev("player", "WOUND", "ABSORB", 0, 0)); @@ -1256,12 +1256,12 @@ fn a_feigning_target_paints_empty_bars_and_the_dead_text() { s.eval::("return TargetDeadText:GetText()").unwrap(), "Dead", "the WORD is the GlobalString `DEAD` (l.898), never the key: a literal \"DEAD\" here \ - is the caps bug the director caught on Onyxia" + is the caps bug seen on Onyxia" ); assert_eq!( s.eval::(r#"return UnitIsDead("target")"#).unwrap(), 1, - "UnitIsDead 0x517ac0's dynflag leg reaches the API too — as the number 1 (2043)" + "UnitIsDead 0x517ac0's dynflag leg reaches the API too — as the number 1" ); s.set_unit("target", hunter(1200, 300, false)); diff --git a/crates/benilla-app/src/ui_script/unit_popup_tests.rs b/crates/benilla-app/src/ui_script/unit_popup_tests.rs index 693eca51..f1200800 100644 --- a/crates/benilla-app/src/ui_script/unit_popup_tests.rs +++ b/crates/benilla-app/src/ui_script/unit_popup_tests.rs @@ -56,11 +56,11 @@ fn bake_strings(s: &UiScript) { PARTY_INVITE = "Invite" TRADE = "Trade" DUEL = "Duel" - -- The inspect row's label (decision 0631). Verified against the real - -- `Interface\FrameXML\GlobalStrings.lua:2327` off the 1.12.1 patch chain — which is what the - -- app itself runs at boot (`load_global_strings`); this stub only stands in for it here. + -- The inspect row's label: the value at `Interface\FrameXML\GlobalStrings.lua:2327` off + -- the 1.12.1 patch chain, which is what the app itself runs at boot + -- (`load_global_strings`); this stub only stands in for it here. INSPECT = "Inspect" - -- The follow row's label (decision 0893), likewise the real + -- The follow row's label, likewise the real -- `GlobalStrings.lua:1981` value off the 1.12.1 patch chain. FOLLOW = "Follow" CANCEL = "Cancel" @@ -68,13 +68,13 @@ fn bake_strings(s: &UiScript) { -- The newbie tooltip the stock unit frame raises on a HOVER, which every test in this file -- takes on its way to a right-click. `UnitFrame_OnEnter` (ref `UnitFrame.lua:58-65`) runs -- the detailed-tip branch whenever `SHOW_NEWBIE_TIPS == "1"` — 1.12's own default - -- (`UIOptionsFrame.lua:100`, a file benilla does not build; our `assets/ui/OptionsFrame.xml` - -- is the definer, and this harness loads no options file, so the branch is not reached + -- (`UIOptionsFrame.lua:100`, which the app loads off the patch chain; this harness loads + -- no options file, so `SHOW_NEWBIE_TIPS` is nil and the branch is not reached -- here). For a player-controlled target that is not us that branch calls -- `GameTooltip_AddNewbieTip(PLAYER_OPTIONS_LABEL, 1, 1, 1, NEWBIE_TOOLTIP_PLAYEROPTIONS)`. -- Both are nil in a bare harness, and `GameTooltip:SetText(nil)` raises. Verbatim from the -- real `Interface\FrameXML\GlobalStrings.lua` off the 1.12.1 chain (l.3081 and l.2755). - -- Our deleted `UnitFrames.xml` never reached this arm; the stock file does. + -- The stock unit frame reaches this arm, so both strings must exist. PLAYER_OPTIONS_LABEL = "Player Options" NEWBIE_TOOLTIP_PLAYEROPTIONS = "Right-click to bring up special commands for interacting with another player. You can inspect their equipment, issue a party invite, initiate a trade, or challenge a player to a duel. A group leader can promote or remove that player from the group." "#, @@ -299,8 +299,8 @@ fn solo_target_trade_click_queues_an_initiate() { s.eval::("return DropDownList1Button5:GetText()") .unwrap(), "Trade", - "Trade is the fifth row (title + Whisper + Inspect + Invite + Trade) — Inspect joined \ - ahead of it in decision 0631" + "Trade is the fifth row (title + Whisper + Inspect + Invite + Trade) — Inspect sits \ + ahead of it" ); let (tx, ty) = s diff --git a/crates/benilla-app/src/ui_script/verb_event_gate.rs b/crates/benilla-app/src/ui_script/verb_event_gate.rs index 65458acb..ed09b17f 100644 --- a/crates/benilla-app/src/ui_script/verb_event_gate.rs +++ b/crates/benilla-app/src/ui_script/verb_event_gate.rs @@ -148,8 +148,8 @@ const GAP: &[(&str, &str, &str)] = &[ "CRAFT_UPDATE", "the reference commits through the 21-byte thunk 0x4f6be0 (the trainer's 0x4d8c90 shape); \ a no-op here because the craft list is flat — the header law was never ported from \ - TradeSkill (0446, 0530's follow-up) — so there is nothing to repaint. Whether any 1.12 \ - craft list carries more than one group is not established: 0446 covers Enchanting, \ + TradeSkill — so there is nothing to repaint. Whether any 1.12 \ + craft list carries more than one group is not established: Enchanting's does not, \ Beast Training is unchecked", ), ( @@ -168,7 +168,7 @@ const GAP: &[(&str, &str, &str)] = &[ "SelectGossipOption", "GOSSIP_ENTER_CODE", "a coded option raises the code-entry popup in the reference (the worker 0x4e2320); here \ - coded options are greyed and unselectable (0081 v1, `reference_ui`'s UNPRODUCED row), and \ + coded options are greyed and unselectable (`reference_ui`'s UNPRODUCED row), and \ vmangos's `gossip_menu_option` carries zero coded rows, so no NPC on this server reaches it", ), ]; @@ -302,7 +302,7 @@ fn every_event_the_reference_fires_from_a_verb_is_fired_by_the_verb_s_module() { surprises.is_empty(), "the reference fires these events from inside the verb, and the module that registers \ the verb here fires nothing — the stock Lua that calls the verb for its side effect \ - repaints nothing (2244's class). Fire it from the verb, or declare the pair: ELSEWHERE \ + repaints nothing. Fire it from the verb, or declare the pair: ELSEWHERE \ when a feed fires it on THIS verb's change and you read that at the feed, GAP with the \ reason otherwise:\n {}", surprises.join("\n ") diff --git a/crates/benilla-app/src/ui_script/world_entry_tests.rs b/crates/benilla-app/src/ui_script/world_entry_tests.rs index a748930e..5f6e7a30 100644 --- a/crates/benilla-app/src/ui_script/world_entry_tests.rs +++ b/crates/benilla-app/src/ui_script/world_entry_tests.rs @@ -152,7 +152,7 @@ fn the_second_login_runs_addon_file_scope_under_the_second_character() { probe_saw(&world).as_deref(), Some("Onewarrior"), "the second login's addon file scope must read the SECOND character — this is the \ - director's \"always Onewarrior\" report, from the other side" + \"always Onewarrior\" bug, from the other side" ); assert_eq!( probe_loads(&world), @@ -354,7 +354,7 @@ fn logging_out_leaves_no_in_game_frames_behind() { ); assert!( !frame_exists(&world, "PlayerFrame"), - "and so is the in-game frame tree — 1051 measured 193 quads' worth of it surviving \ + "and so is the in-game frame tree — a leftover tree once drew 193 quads' worth \ behind the glue screen's opaque node" ); assert!( @@ -405,7 +405,7 @@ fn reload_ui_is_a_fresh_login_in_place() { .expect("in-world VM") .session(), first_session, - "the VM identity changed, so every VmMemo about the old session expires (1290)" + "the VM identity changed, so every VmMemo about the old session expires" ); assert!( frame_exists(&world, "PlayerFrame"), @@ -442,7 +442,7 @@ fn a_disable_staged_in_the_session_applies_at_the_reload() { .expect("DisableAddOn"); assert!( probe_saw(&world).is_some(), - "disabling alone changes nothing in the live session — there is no unload (1197)" + "disabling alone changes nothing in the live session — there is no unload" ); reload(&mut world, crate::char_select::ClientState::InWorld); @@ -961,10 +961,10 @@ fn a_repeating_error_is_one_row_with_a_count_not_a_flood() { let before = script.diagnostics().len(); // The same failure through the engine's catch path: a slash command whose body raises. script - .run("SlashCmdList = SlashCmdList or {} SLASH_B293BOOM1 = '/b293boom' SlashCmdList['B293BOOM'] = function() error('every frame') end") + .run("SlashCmdList = SlashCmdList or {} SLASH_ERRBOOM1 = '/errboom' SlashCmdList['ERRBOOM'] = function() error('every frame') end") .expect("register"); for _ in 0..500 { - script.run_slash_command("b293boom", ""); + script.run_slash_command("errboom", ""); } let rows = script.diagnostics(); @@ -997,7 +997,7 @@ fn place_a_window(world: &mut World) { .get_non_send_resource_mut::() .expect("a VM to place a window in") .run( - "local f = CreateFrame(\"Frame\", \"B353Probe\") \ + "local f = CreateFrame(\"Frame\", \"LayoutProbe\") \ f:SetWidth(413) f:SetHeight(147) \ f:SetPoint(\"BOTTOMLEFT\", 61, 29) \ f:SetMovable(true) f:SetResizable(true) f:SetUserPlaced(true)", @@ -1014,7 +1014,7 @@ fn layout_cache(character: &str) -> Option { /// What a saved window's row has to say for the player to get it back. fn assert_probe_row(text: &str) { for want in [ - "Frame: B353Probe", + "Frame: LayoutProbe", "W: 413", "H: 147", "Point: BOTTOMLEFT - BOTTOMLEFT 61 29", @@ -1088,7 +1088,7 @@ fn each_character_gets_its_own_layout_cache() { assert_probe_row(&layout_cache("Onehunter").expect("the first character's file")); let second = layout_cache("Onewarrior").expect("the second character's file"); assert!( - !second.contains("B353Probe"), + !second.contains("LayoutProbe"), "a character who placed nothing must not inherit another's window:\n{second}" ); @@ -1103,7 +1103,7 @@ fn author_a_window(world: &mut World) { .get_non_send_resource_mut::() .expect("a VM to author a window in") .run( - "local f = CreateFrame(\"Frame\", \"B353Probe\") \ + "local f = CreateFrame(\"Frame\", \"LayoutProbe\") \ f:SetWidth(100) f:SetHeight(100) \ f:SetPoint(\"BOTTOMLEFT\", 0, 0) \ f:SetMovable(true) f:SetResizable(true)", @@ -1117,8 +1117,8 @@ fn window_geometry(world: &World) -> (f32, f32, String, f32, f32) { .get_non_send_resource::() .expect("a VM") .eval::<(f32, f32, String, f32, f32)>( - "local p, _, _, x, y = B353Probe:GetPoint(1) \ - return B353Probe:GetWidth(), B353Probe:GetHeight(), p, x, y", + "local p, _, _, x, y = LayoutProbe:GetPoint(1) \ + return LayoutProbe:GetWidth(), LayoutProbe:GetHeight(), p, x, y", ) .expect("read the probe window back") } @@ -1218,7 +1218,7 @@ fn the_ui_is_not_up_in_the_frame_between_the_wire_and_the_state() { world.insert_resource(super::PendingEntryUiLoad); assert!( !run_ingame_ui_up(&mut world), - "the deferral window — 1978's parked VM, and nothing to receive an event" + "the deferral window — a parked VM, and nothing to receive an event" ); // The deferred load ran: the frame tree exists. @@ -1430,7 +1430,7 @@ ScreenProbeHeight = GetScreenHeight() assert_eq!( read("ScreenProbeHeight"), Some(768.0), - "…and the height is the 768-tall virtual base (decision 0582)" + "…and the height is the 768-tall virtual base" ); drop(world); @@ -1452,7 +1452,7 @@ fn the_entry_load_seeds_a_record_the_feed_cannot_take_away() { assert_eq!( probe_saw(&world).as_deref(), Some("Nelprifour"), - "addon file scope reads the live character, as it always has (1230)" + "addon file scope reads the live character, as it always has" ); let mut script = world @@ -1482,7 +1482,7 @@ fn the_entry_load_seeds_a_record_the_feed_cannot_take_away() { .unwrap() .as_deref(), Some("WARRIOR"), - "…and the same for the other three fields the reference reads off that record (2263)" + "…and the same for the other three fields the reference reads off that record" ); // A logout despawn removes the token altogether. diff --git a/crates/benilla-app/src/ui_script/world_map_tests.rs b/crates/benilla-app/src/ui_script/world_map_tests.rs index fc37cb20..d5bc44e6 100644 --- a/crates/benilla-app/src/ui_script/world_map_tests.rs +++ b/crates/benilla-app/src/ui_script/world_map_tests.rs @@ -172,7 +172,7 @@ fn hovering_a_poi_names_it_and_adds_a_status_line_only_when_there_is_one() { .unwrap(), None, "no description → a blank line that reads back NIL: `FontString:GetText 0x79d690` \ - substitutes nil for an empty string (decision 2110), and Cartographer 2.02's world-map \ + substitutes nil for an empty string, and Cartographer 2.02's world-map \ hover reads exactly this as \"this POI has no status line\"" ); diff --git a/crates/benilla-app/src/ui_session.rs b/crates/benilla-app/src/ui_session.rs index bd465598..2c051380 100644 --- a/crates/benilla-app/src/ui_session.rs +++ b/crates/benilla-app/src/ui_session.rs @@ -373,7 +373,7 @@ mod tests { /// Sessions that do not own the `"npc"` portrait token, each with its reason. const EXCLUDED: &[(&str, &str)] = &[ // Its icon is art, not a unit bake, and must not take a portrait window's token. - ("MailOpen", "its window icon is art, not a unit bake (0544)"), + ("MailOpen", "its window icon is art, not a unit bake"), // Reached from an open gossip menu, which stays open behind it and heads the chain; // unlike the registrar's, the server does not close it first. ("TalentWipeState", "rides the still-open gossip session"), diff --git a/crates/benilla-app/src/ui_text/layout/mod.rs b/crates/benilla-app/src/ui_text/layout/mod.rs index abc73d08..dd269f48 100644 --- a/crates/benilla-app/src/ui_text/layout/mod.rs +++ b/crates/benilla-app/src/ui_text/layout/mod.rs @@ -361,7 +361,7 @@ mod seat_tests { } #[test] - fn the_seat_is_the_law_plus_the_directors_nudge() { + fn the_seat_is_the_law_plus_a_one_pixel_nudge() { assert_eq!(snap_block_top(10.5), snap_block_top_law(10.5) + 1.0); assert_eq!(snap_block_top(0.0), 1.0); } diff --git a/crates/benilla-app/src/ui_tooltip/tests.rs b/crates/benilla-app/src/ui_tooltip/tests.rs index ed2193f7..7c78abcc 100644 --- a/crates/benilla-app/src/ui_tooltip/tests.rs +++ b/crates/benilla-app/src/ui_tooltip/tests.rs @@ -367,7 +367,7 @@ fn range_cell_on_real_data() { /// The required-item, chance-to-X and reagents lines on the real data. #[test] -fn the_pinned_c6_lines_on_real_data() { +fn the_required_item_chance_and_reagent_lines_on_real_data() { let data = benilla_formats::wow_data_or_skip!(); let mut chain = benilla_formats::open_chain(&data).expect("open chain"); let spells = Spells { diff --git a/crates/benilla-app/src/ui_trade/mod.rs b/crates/benilla-app/src/ui_trade/mod.rs index d30bab2b..aa5a9ab4 100644 --- a/crates/benilla-app/src/ui_trade/mod.rs +++ b/crates/benilla-app/src/ui_trade/mod.rs @@ -1143,7 +1143,7 @@ mod tests { .map(|e| e.key) .collect::>(), vec!["ERR_INITIATE_TRADE_S"], - "0x7 is named in the cache but is not a streamed object: the status line is dropped, the initiate line is not" + "0x7 is cached, not a streamed object: the status line drops, the initiate line stays" ); // Stream the player, ask again: now it prints. diff --git a/crates/benilla-app/src/ui_trainer/tests.rs b/crates/benilla-app/src/ui_trainer/tests.rs index d8c759e0..1bcb7c0f 100644 --- a/crates/benilla-app/src/ui_trainer/tests.rs +++ b/crates/benilla-app/src/ui_trainer/tests.rs @@ -247,7 +247,7 @@ fn trainer_icon_on_real_data_reaches_for_the_crafted_item() { assert_eq!( recipe_icon.as_deref(), Some("Interface\\Icons\\Spell_Shadow_SealOfKings"), - "the blue crown the director saw IS the recipe spell's own icon" + "the blue crown on the row IS the recipe spell's own icon" ); // A tradeskill trainer: gate 3 fires for item 2847 and the icon waits on its template. diff --git a/crates/benilla-app/src/ui_unit.rs b/crates/benilla-app/src/ui_unit.rs index 99e038f8..a36ea7d2 100644 --- a/crates/benilla-app/src/ui_unit.rs +++ b/crates/benilla-app/src/ui_unit.rs @@ -1630,7 +1630,7 @@ mod tests { assert_eq!( team(&[(BYTES_0, human_warrior), (FACTIONTEMPLATE, GM_TEMPLATE)]), 1, - "a GM keeps his race's side (report B378)" + "a GM keeps his race's side" ); assert_eq!( team(&[(BYTES_0, scourge_mage), (FACTIONTEMPLATE, GM_TEMPLATE)]), @@ -2046,7 +2046,7 @@ mod tests { }; assert!( flag_events(step(&mut app, 0)).is_empty(), - "the login descriptor is a create: structurally silent (1098 §4)" + "the login descriptor is a create: structurally silent" ); // `PLAYER_FLAGS_HIDE_HELM` `0x400` moves and the resting bit does not. diff --git a/crates/benilla-app/src/ui_world_map.rs b/crates/benilla-app/src/ui_world_map.rs index d99c7e22..5271b324 100644 --- a/crates/benilla-app/src/ui_world_map.rs +++ b/crates/benilla-app/src/ui_world_map.rs @@ -999,7 +999,7 @@ mod tests { }; assert!( !tower_shows(&states, &explored_epl), - "no world states received — no tower icon (this IS report B190)" + "no world states received — no tower icon (this IS the reported bug)" ); states.write(&[(2372, 1)]); assert!(tower_shows(&states, &explored_epl), "Alliance holds it"); diff --git a/crates/benilla-app/src/world_state_ui.rs b/crates/benilla-app/src/world_state_ui.rs index 111717b2..957542be 100644 --- a/crates/benilla-app/src/world_state_ui.rs +++ b/crates/benilla-app/src/world_state_ui.rs @@ -324,8 +324,8 @@ mod tests { assert!( build(&catalog, &states, false).is_empty(), - "no zone-defense channel — the world-PvP rows are all Type 1 (this IS report B190's \ - second half, and its least obvious gate)" + "no zone-defense channel — the world-PvP rows are all Type 1 (the Type gate, the \ + least obvious of the gates here)" ); let rows = build(&catalog, &states, true); diff --git a/crates/benilla-app/tests/auction_frame.rs b/crates/benilla-app/tests/auction_frame.rs index 0f0e3c06..7198b73c 100644 --- a/crates/benilla-app/tests/auction_frame.rs +++ b/crates/benilla-app/tests/auction_frame.rs @@ -368,7 +368,7 @@ fn the_show_cascade_notifies_the_bids_pane_once_and_keeps_its_page() { assert_eq!( order(&s), "window,pane", - "OURS, and a known deviation (2317): the reference's cascade is post-order, \"pane,window\"" + "OURS, and a known deviation: the reference's cascade is post-order, \"pane,window\"" ); assert_eq!( page(&s), diff --git a/crates/benilla-app/tests/common/mod.rs b/crates/benilla-app/tests/common/mod.rs index 9a765afb..4cfa350b 100644 --- a/crates/benilla-app/tests/common/mod.rs +++ b/crates/benilla-app/tests/common/mod.rs @@ -66,7 +66,7 @@ const UIPARENT_STAND_INS: &str = r#" LocalizeFrames = LocalizeFrames or function() end updateContainerFrameAnchors = updateContainerFrameAnchors or function() end -- 1.12 keeps UpdateNameplates in UIOptionsFrame.lua, which a kit reaches only at manifest - -- l.21; our own OptionsFrame.xml re-declares it below that (decision 2132). Both are plain + -- l.21; our own OptionsFrame.xml re-declares it below that. Both are plain -- `function X()` writes, so a full kit ends on ours and a short one keeps this no-op. UpdateNameplates = UpdateNameplates or function() end CloseAllBags = CloseAllBags or function() end @@ -120,7 +120,7 @@ const UIPARENT_STAND_INS: &str = r#" -- The four options/menu windows `IsOptionFrameOpen` (l.997) and `ToggleGameMenu` (l.1467) -- index unguarded. `IsOptionFrameOpen` is on the path of every window close, so a kit that -- loads no options window raised on the first bag click. In the shipped manifest all four - -- names are real, and since 2177 all three options windows are the REFERENCE's own files, + -- names are real, and all three options windows are the REFERENCE's own files, -- loaded hidden — including `OptionsFrame`, the video window, which used to be our own -- window's name. Ours is `BenillaOptionsFrame` now and is not in this list: it is not a name -- the reference indexes, and the wrappers in `GameMenuFrame.xml` are what tell these two diff --git a/crates/benilla-app/tests/cover_input_wall.rs b/crates/benilla-app/tests/cover_input_wall.rs index 51a756f4..abfbebb4 100644 --- a/crates/benilla-app/tests/cover_input_wall.rs +++ b/crates/benilla-app/tests/cover_input_wall.rs @@ -55,7 +55,7 @@ const VERDICTS: &[(&str, Verdict)] = &[ ( "CursorLeft", Open( - "the cover READS it rather than taking it (decision 2090): a `None` in the window's \ + "the cover READS it rather than taking it: a `None` in the window's \ position field is either winit's departure or the cover's own blank, and the hand-back \ must not confuse them — restoring the stash over a pointer the player took out of the \ window would warp it back in. Draining it would blind the gate to its own signal.", diff --git a/crates/benilla-app/tests/item_text_frame.rs b/crates/benilla-app/tests/item_text_frame.rs index 55e32853..6ff6661b 100644 --- a/crates/benilla-app/tests/item_text_frame.rs +++ b/crates/benilla-app/tests/item_text_frame.rs @@ -414,7 +414,7 @@ fn a_quest_givers_gossip_displaces_the_open_reader() { assert!(s.take_errors().is_empty()); assert!( !s.eval::("return ItemTextFrame:IsShown()").unwrap(), - "gossip replaced the note — the B288 stack (both drawn at 0,-104) cannot form" + "gossip replaced the note — the two-window stack (both drawn at 0,-104) cannot form" ); assert!(s .eval::("return GossipFrame:IsShown() and GetLeftFrame():GetName() == 'GossipFrame'") diff --git a/crates/benilla-app/tests/mail_frame.rs b/crates/benilla-app/tests/mail_frame.rs index 095a42e8..9d8312e0 100644 --- a/crates/benilla-app/tests/mail_frame.rs +++ b/crates/benilla-app/tests/mail_frame.rs @@ -607,7 +607,7 @@ fn an_auction_invoice_renders_as_a_receipt() { assert_eq!( text(&s, "OpenMailBodyText"), "nil", - "an invoice has no letter body at all — `GetInboxText` nils it (1527), so the receipt has \ + "an invoice has no letter body at all — `GetInboxText` nils it, so the receipt has \ nothing to sit on top of" ); assert!(s.take_errors().is_empty()); @@ -635,7 +635,7 @@ fn an_auction_invoice_renders_as_a_receipt() { text(&s, "OpenMailInvoiceBuyMode"), "nil", "the buy-mode line is blank on a bid win, and a blank FontString reads back nil — \ - `FontString:GetText 0x79d690` substitutes (decision 2110); this helper `tostring`s it" + `FontString:GetText 0x79d690` substitutes; this helper `tostring`s it" ); assert_eq!(money(&s, "OpenMailTransactionAmountMoneyFrame"), "9000"); for gone in [ diff --git a/crates/benilla-app/tests/reference_strings.rs b/crates/benilla-app/tests/reference_strings.rs index e1ca293c..f122e015 100644 --- a/crates/benilla-app/tests/reference_strings.rs +++ b/crates/benilla-app/tests/reference_strings.rs @@ -252,7 +252,7 @@ fn no_user_facing_sentence_is_written_in_rust_when_the_reference_ships_one() { "\nA user-facing sentence is written in Rust where the reference ships the string.\n\ Resolve it by key instead — `keyed_line`/`keyed_line_s` where a `UiScript` is in hand, \ `UiError::key` into a queue at the net bridge, `GlueStrings::text` on the glue screens.\n\ - (decision 2035){}", + Over the ratchet:{}", over.join("") ); } diff --git a/crates/benilla-app/tests/talent_frame.rs b/crates/benilla-app/tests/talent_frame.rs index e2a01997..095b20a0 100644 --- a/crates/benilla-app/tests/talent_frame.rs +++ b/crates/benilla-app/tests/talent_frame.rs @@ -289,7 +289,7 @@ fn an_unavailable_talent_reaches_the_renderer_desaturated() { let (grey, tint) = icon(&quads, "Ability_BackStab"); assert!( grey, - "an unavailable talent's icon must carry the greyscale flag — the whole of B162" + "an unavailable talent's icon must carry the greyscale flag — the flag is what greys it" ); // The stock 0.65 tint still reaches the quad: the desaturate shader // (`Shaders\Pixel\Desaturate.bls`) discards its RGB, but its alpha is read on both paths. diff --git a/crates/benilla-app/tests/ui_script_wall.rs b/crates/benilla-app/tests/ui_script_wall.rs index 786cb4c3..96d73b5e 100644 --- a/crates/benilla-app/tests/ui_script_wall.rs +++ b/crates/benilla-app/tests/ui_script_wall.rs @@ -80,7 +80,7 @@ fn the_vm_is_named_by_no_more_files_than_the_ceiling_says() { assert!( n <= CEILING, "{n} gameplay files outside ui_script/ and the feeds name UiScript; the ceiling is \ - {CEILING}.\nA new file learned that the FrameXML VM exists. Decision 1177's line is that \ + {CEILING}.\nA new file learned that the FrameXML VM exists. The line is that \ only the feed layer may know: feed a model value instead, or — if this file genuinely is \ feed code — it belongs under a `ui_*` module, and a probe under `capture/`. Raise CEILING \ here only with the reason, the way world_api_wall.rs requires.\nWOW_UISCRIPT_DUMP=1 lists \ diff --git a/crates/benilla-app/tests/world_api_wall.rs b/crates/benilla-app/tests/world_api_wall.rs index 087fdf48..93df715b 100644 --- a/crates/benilla-app/tests/world_api_wall.rs +++ b/crates/benilla-app/tests/world_api_wall.rs @@ -82,98 +82,98 @@ fn is_instrument_consumer(rel: &str) -> bool { /// (`wall`: published without one). Adding a row is a claim made in review, with its record. const PUBLISHED: &[(&str, &str)] = &[ ("bgwin::BgWinPlugin", "wall"), - ("bgwin::background_run", "2338"), - ("bgwin::no_pixel_run", "2338"), - ("billboard::BillboardCard", "1164"), - ("boot::tuned_default_plugins", "2338"), - ("build_id::BuildId", "2338"), - ("build_id::banner", "1179"), - ("collision::ColliderEpoch", "1384"), - ("collision::MoverTraceExclusions", "1767"), - ("collision::WorldCollision", "1164"), - ("decal::WorldDecal", "1164"), - ("dev_state::STILL_INPUTS_CHANGED", "1979"), - ("doodad_anim::AnimMatPart", "2295"), - ("doodad_anim::DoodadAnimHost", "1365"), - ("doodad_anim::MatAnim", "1164"), - ("doodad_anim::TintLoop", "2295"), - ("doodad_anim::UvLoops", "2282"), - ("doodad_anim::register_entity_uv", "2295"), - ("doodad_anim::register_fx_uv", "2282"), - ("doodad_anim::register_tint", "2295"), - ("doodad_anim::spawn_anim_host", "1164"), - ("ffx_glow::FfxBackdrop", "2234"), - ("ffx_glow::FfxGlow", "1164"), - ("ffx_glow::GlueFfx", "1731"), - ("final_pass::FinalPassTarget", "2206"), - ("instance_tint::InstanceTintMirrors", "1731"), - ("instance_tint::InstanceTints", "1164"), - ("interact::PickMesh", "1164"), - ("interact::WorldObject", "1164"), - ("interact::WorldPick", "1164"), - ("interact::cast_pick_ray", "1164"), - ("interior::NodeAmbient", "2079"), - ("lighting::LightBlob", "1164"), - ("lighting::WorldTime", "1167"), - ("lighting::WowLighting", "1164"), - ("mac_quit::MacQuitPlugin", "1528"), - ("mat_anim_table::MatAnimMirrors", "2023"), - ("mat_anim_table::MatAnimTable", "1381"), - ("mat_anim_table::affine_row", "2019"), - ("mesh_tag::HIGHLIGHT_BIT", "1164"), - ("model_fade::ModelFade", "1164"), - ("model_fade::ParentModel", "1164"), - ("model_fade::RenderFade", "1164"), + ("bgwin::background_run", "record"), + ("bgwin::no_pixel_run", "record"), + ("billboard::BillboardCard", "record"), + ("boot::tuned_default_plugins", "record"), + ("build_id::BuildId", "record"), + ("build_id::banner", "record"), + ("collision::ColliderEpoch", "record"), + ("collision::MoverTraceExclusions", "record"), + ("collision::WorldCollision", "record"), + ("decal::WorldDecal", "record"), + ("dev_state::STILL_INPUTS_CHANGED", "record"), + ("doodad_anim::AnimMatPart", "record"), + ("doodad_anim::DoodadAnimHost", "record"), + ("doodad_anim::MatAnim", "record"), + ("doodad_anim::TintLoop", "record"), + ("doodad_anim::UvLoops", "record"), + ("doodad_anim::register_entity_uv", "record"), + ("doodad_anim::register_fx_uv", "record"), + ("doodad_anim::register_tint", "record"), + ("doodad_anim::spawn_anim_host", "record"), + ("ffx_glow::FfxBackdrop", "record"), + ("ffx_glow::FfxGlow", "record"), + ("ffx_glow::GlueFfx", "record"), + ("final_pass::FinalPassTarget", "record"), + ("instance_tint::InstanceTintMirrors", "record"), + ("instance_tint::InstanceTints", "record"), + ("interact::PickMesh", "record"), + ("interact::WorldObject", "record"), + ("interact::WorldPick", "record"), + ("interact::cast_pick_ray", "record"), + ("interior::NodeAmbient", "record"), + ("lighting::LightBlob", "record"), + ("lighting::WorldTime", "record"), + ("lighting::WowLighting", "record"), + ("mac_quit::MacQuitPlugin", "record"), + ("mat_anim_table::MatAnimMirrors", "record"), + ("mat_anim_table::MatAnimTable", "record"), + ("mat_anim_table::affine_row", "record"), + ("mesh_tag::HIGHLIGHT_BIT", "record"), + ("model_fade::ModelFade", "record"), + ("model_fade::ParentModel", "record"), + ("model_fade::RenderFade", "record"), ("model_fade::UnitRenderAlpha", "wall"), - ("model_forms::ModelForms", "1167"), - ("model_render::BatchVariants", "1164"), - ("model_render::EntityUvLane", "2295"), - ("model_render::M2BatchMaterials", "1164"), - ("model_render::ModelKind", "1164"), - ("model_render::ModelPart", "1164"), - ("model_render::lazy::realize", "1940"), + ("model_forms::ModelForms", "record"), + ("model_render::BatchVariants", "record"), + ("model_render::EntityUvLane", "record"), + ("model_render::M2BatchMaterials", "record"), + ("model_render::ModelKind", "record"), + ("model_render::ModelPart", "record"), + ("model_render::lazy::realize", "record"), ("modkeys::SyntheticHold", "wall"), - ("particles::ViewThrottled", "1559"), - ("particles::render::EFFECT_DRAW_STATS", "1955"), - ("particles::spawn_emitter", "1164"), - ("ride_frame::RideFrame", "1661"), + ("particles::ViewThrottled", "record"), + ("particles::render::EFFECT_DRAW_STATS", "record"), + ("particles::spawn_emitter", "record"), + ("ride_frame::RideFrame", "record"), ("rig_anim::AnimParked", "wall"), ("rig_anim::GlobalSeqDrive", "wall"), ("rig_anim::PosePost", "wall"), ("rig_anim::RigAnchor", "wall"), ("rig_anim::RigFrame", "wall"), ("rig_anim::RigPose", "wall"), - ("rig_palette::RigPalettes", "1164"), - ("rig_palette::RigSkin", "1164"), - ("rig_rider::RigRider", "1609"), - ("schedule::WorldLive", "1160"), - ("schedule::WorldStage", "1164"), + ("rig_palette::RigPalettes", "record"), + ("rig_palette::RigSkin", "record"), + ("rig_rider::RigRider", "record"), + ("schedule::WorldLive", "record"), + ("schedule::WorldStage", "record"), ("sky_order::Rung", "wall"), ("terrain_stream::SPAWN_XY", "wall"), - ("terrain_stream::ViewFocus", "1160"), + ("terrain_stream::ViewFocus", "record"), ("terrain_stream::WorldLoadProgress", "wall"), - ("thread_qos::QosClass", "2338"), + ("thread_qos::QosClass", "record"), ("thread_qos::ThreadQosPlugin", "wall"), - ("thread_qos::promote_current_thread", "2338"), - ("view::MsaaFormats", "1632"), - ("view::MsaaSetting", "1629"), - ("view::ViewDistance", "1164"), + ("thread_qos::promote_current_thread", "record"), + ("view::MsaaFormats", "record"), + ("view::MsaaSetting", "record"), + ("view::ViewDistance", "record"), ("view::Viewer", "wall"), - ("view::WorldCamera", "1164"), - ("vis_chain::VisChainOnly", "1441"), - ("weather::WeatherMessage", "1164"), - ("weather::WeatherState", "2181"), - ("wmo_portal::room_pvs_visible", "1475"), - ("world_census::CensusReport", "1164"), - ("world_census::WorldCensus", "1164"), - ("world_map::CurrentMap", "1164"), - ("world_map::MapChange", "1164"), - ("world_plugins::WorldPlugins", "1164"), - ("world_point::Subject", "1164"), - ("world_point::WorldPoint", "1164"), + ("view::WorldCamera", "record"), + ("vis_chain::VisChainOnly", "record"), + ("weather::WeatherMessage", "record"), + ("weather::WeatherState", "record"), + ("wmo_portal::room_pvs_visible", "record"), + ("world_census::CensusReport", "record"), + ("world_census::WorldCensus", "record"), + ("world_map::CurrentMap", "record"), + ("world_map::MapChange", "record"), + ("world_plugins::WorldPlugins", "record"), + ("world_point::Subject", "record"), + ("world_point::WorldPoint", "record"), ("world_unit::ViewerUnit", "wall"), ("world_unit::WorldUnit", "wall"), - ("worldview::run", "2338"), + ("worldview::run", "record"), ]; /// The sorted leaks: crossings filed to close, with how. `CLOSE/absorb`: a facade takes the call; @@ -318,7 +318,7 @@ fn the_world_api_doorway_stays_shut() { // Always print the numbers (`--nocapture` shows them). eprintln!( "world API surface: {} items — {n} leaks (ceiling {LEAK_CEILING}, slack {LEAK_SLACK}; \ - {sorted} sorted by 1164, {} unsorted), {} published; + {} named only by the instruments", + {sorted} sorted, {} unsorted), {} published; + {} named only by the instruments", published.len() + n, n - sorted, published.len(), @@ -380,8 +380,8 @@ fn the_world_api_doorway_stays_shut() { panic!( "world API leaks: {n}, ceiling {LEAK_CEILING}.\n\ Something new crossed the line and no record publishes it. Either close it, or — if \ - it is genuine engine API — add it to PUBLISHED with the record that says so (decision \ - 2338); never a bare number. The unsorted leaks on this tree:\n\n{}", + it is genuine engine API — add it to PUBLISHED with the record that says so, \ + a claim made in review. The unsorted leaks on this tree:\n\n{}", render(&fresh) ); }