MONKEY (lampfog): add options and visual proofs

Co-Authored-By: GPT-5.6 Sol (Codex)
This commit is contained in:
pkuzic
2026-09-25 16:01:28 +01:00
co-authored by GPT-5.6 Sol (Codex)
parent b96b9deb59
commit eef0083236
5 changed files with 188 additions and 29 deletions
+4
View File
@@ -26,6 +26,7 @@ behind each constant.
| Volumetric fog | near-field haze that converges on the zone fog colour (clear within 10 yd, full by 150 yd; mistier at dawn and in bad weather, faint indoors) and sun/moon light shafts through gaps, sampled from the shadow map; own fullscreen pass after the main pass (`benilla-app/src/volumetric_fog.rs`) | Advanced Graphics → Volumetric Fog (Off/Low/High), cvar `volumetricFog`, env `WOW_VOLFOG=0\|1\|2` |
| Sky dithering | a faint screen-space dither in the FFXGlow combine so smooth sky and fog gradients do not band (MONKEY p0; was env-only) | Advanced Graphics → Sky Dithering, cvar `skyDither` 0/1 (default 0, Graphics preset High = 1), env `WOW_DITHER=1` still forces it on; bridge in `benilla-app/src/monkey_gfx.rs` |
| Modern fog | MONKEY (fog): distance fog in the style of the modern client. Radial distance; exponential from the zone's own start, fitted so 60 % survives mid-span and closed over the last stretch so the fog still ends where the zone authored it; a sun-fog lobe (the fog leans to the sun colour around the sun, fading out through dusk); the far fog shifts toward the sky's 1.8° ring so fogged land, the WDL hull and the sky dome's horizon meet in one colour; volumetric haze takes the same colour and no longer hazes sky pixels. The fog end stays the zone's up to farclip 777 and grows with farclip beyond it. Optional per-`LightParams` fields (height fog, sun/end fog, curve) from our `LightFogBand.dbc` (absent = derived from the 1.12 bands). Interior WMO fog stays classic | Advanced Graphics → Modern Fog, cvar `fogModel` 0 Classic (default, byte-identical) / 1 Modern (Graphics preset High = 1), env `WOW_FOGMODEL=0\|1`; `fog_hook.wgsl`, `benilla-world/src/lighting/fog_model.rs`, `benilla-formats/src/light/fog_band.rs` |
| Lamp fog | MONKEY (lampfog): the fog fullscreen pass selects the nearest resolved exterior and interior point-table sources and analytically integrates their softened inverse-square light over the camera-to-scene-depth ray. A near-field haze floor makes lamps visible inside the ordinary volumetric haze's 10 yd clear zone; it is zero by day, stronger in rain/fog, and deliberately unshadowed. The table colour already includes intensity, flame flicker and `fireLightGain`. Halo output uses destination headroom and stays below 1.0, so a later bloom pass cannot blow it out | Advanced Graphics → Lamp Fog, cvar `lampFog` 0 Off (default, unchanged) / 1 Low (16 lamps) / 2 High (32 lamps; Graphics preset High = 2), env `WOW_LAMPFOG=0\|1\|2`; `benilla-app/src/volumetric_fog.rs` |
| Night and interior level | global dimming of the night sky term and of interior ambient | `nightGain`, `interiorGain`, `interiorBakeFloor` |
Players reach all of it from **Options -> Advanced Graphics** (a Lighting Quality preset Off / Low / Medium / High plus the individual rows; Off is the original client look). The dev build has a panel for all of it: **Ctrl+Shift+D → Lighting & shadows**, with Dim / Default /
@@ -81,6 +82,9 @@ is its own module, documented in `WATER.md`.
(`benilla-world/src/lighting/monkey_frame.rs`); `global_light::pack_monkey_frame` packs it after
the point table and fills `time_of_day` / `night` itself. All zero = no visual change.
- World lights use upstream's `WorldPointLight`, never Bevy's `PointLight`.
- MONKEY (lampfog): `ResolvedPointLights` is a CPU-only read view of the live, truncated point table;
it does not add a row to the shared GPU buffer. Lamp selection is capped at 100 yd and ranks both
exterior and interior rows together before the 16/32 nearest limit is applied.
- WGSL only fails at pipeline creation, so a shader edit is verified by running a world scene, not
by `cargo check`.
- Exterior point lights are selected per draw unit (12 slots, ranked against the chunk's box); the
@@ -523,6 +523,8 @@
skyDither = "Sky Dithering",
-- MONKEY (fog)
fogModel = "Modern Fog",
-- MONKEY (lampfog)
lampFog = "Lamp Fog",
yards = "%d yd",
tips = {
LIGHTING_QUALITY =
@@ -626,6 +628,12 @@
.. "sky's colour in the distance, so the land melts into the horizon. Each zone "
.. "keeps its own fog distance; above the original view-distance limit the fog "
.. "recedes with it.\n\nOff is the original client's fog. Practically free.",
-- MONKEY (lampfog)
LAMP_FOG =
"Makes nearby lamps and fires glow through the air after dark. Low uses the "
.. "nearest 16 lights; High uses 32. Rain and fog strengthen the halos. "
.. "The effect is unshadowed, but stops at visible scene depth.\n\n"
.. "Off is unchanged, and daylight is unchanged at every setting.",
},
},
ruRU = {
@@ -662,6 +670,8 @@
skyDither = "Дизеринг неба",
-- MONKEY (fog)
fogModel = "Современный туман",
-- MONKEY (lampfog)
lampFog = "Свечение фонарей в тумане",
yards = "%d ярд.",
tips = {
LIGHTING_QUALITY =
@@ -774,6 +784,12 @@
.. "так что земля растворяется в горизонте. Дальность тумана в каждой зоне "
.. "прежняя; за пределом дальности обзора оригинала туман отступает вместе с ней."
.. "\n\nВыключено — туман оригинального клиента. Почти ничего не стоит.",
-- MONKEY (lampfog)
LAMP_FOG =
"После заката ближайшие фонари и огни светятся сквозь воздух. Низкое "
.. "качество использует 16 ближайших источников, высокое — 32. Дождь и туман усиливают ореолы. "
.. "Эффект не рассчитывает тени, но обрывается на видимой глубине.\n\n"
.. "Выключено — без изменений; днём изображение не меняется при любом значении.",
},
},
}
@@ -836,6 +852,8 @@
"RowSkyDither",
-- MONKEY (fog)
"RowFogModel",
-- MONKEY (lampfog)
"RowLampFog",
},
-- Player Guild Names is a child of Player Names, as in 1.12 (l.702-708).
Nameplates = {
@@ -2886,6 +2904,22 @@
"BENILLA_TOOLTIP_FOG_MODEL")
</OnLoad></Scripts>
</Frame>
<!-- MONKEY (lampfog): night point-light airlight tiers. -->
<Frame name="$parentRowLampFog" inherits="OptionsDropdownRowTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentRowFogModel" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="0" y="-9"/></Offset></Anchor>
<Anchor point="TOPRIGHT" relativeTo="$parentRowFogModel" relativePoint="BOTTOMRIGHT"><Offset><AbsDimension x="0" y="-9"/></Offset></Anchor>
</Anchors>
<Scripts><OnLoad>
OptionsRow_OnLoad(self, "lampFog", BENILLA_ADVGFX.lampFog,
"BENILLA_TOOLTIP_LAMP_FOG")
OptionsDropdownRow_Setup(self, {
{ text = BENILLA_ADVGFX.fogOff, value = "0" },
{ text = BENILLA_ADVGFX.qLow, value = "1" },
{ text = BENILLA_ADVGFX.qHigh, value = "2" },
})
</OnLoad></Scripts>
</Frame>
</Frames>
<!-- The poll (see AdvGfx_OnUpdate): this is the one page whose
settings move from outside it — the Lighting Quality row
@@ -1414,6 +1414,44 @@ pub(super) const ON_DEMAND: &[Scenario] = &[
minute: 1170,
ui: None,
},
// MONKEY (lampfog): lampFog 0/2 A/B set. Kept at the END so parallel lane tables merge cleanly.
// Goldshire square: the Lion's Pride fixtures and outdoor lamps share one night frame.
Scenario {
name: "lampfog-goldshire-night",
map: Some(MAP_AZEROTH),
eye: [-9460.0, 70.0, 58.0],
look: [-9450.0, 20.0, 61.0],
minute: 0,
ui: None,
},
// Stormwind Trade District from the established city-scale camera, after dark.
Scenario {
name: "lampfog-stormwind-night",
map: Some(MAP_AZEROTH),
eye: [-8833.38, 628.63, 96.0],
look: [-8809.1, 672.3, 94.0],
minute: 0,
ui: None,
},
// Goldshire's east road, looking through the known exterior lamp at (-9477, 53, 60). This is
// deliberately not the fence instrument: that camera looks down at an unlit verge at night.
Scenario {
name: "lampfog-elwynn-road-night",
map: Some(MAP_AZEROTH),
eye: [-9505.0, 36.0, 61.5],
look: [-9455.0, 75.0, 59.0],
minute: 0,
ui: None,
},
// Exact Goldshire framing at noon: lampFog 0 and 2 must be pixel-identical.
Scenario {
name: "lampfog-goldshire-day",
map: Some(MAP_AZEROTH),
eye: [-9460.0, 70.0, 58.0],
look: [-9450.0, 20.0, 61.0],
minute: 720,
ui: None,
},
];
/// The owner's reported vantage for the lava-glow report: `(-7048.8, -1000.6, 242.0)` facing
@@ -2055,6 +2055,67 @@ fn volumetric_fog_dropdown_is_localised_and_live() {
}
}
// MONKEY (lampfog): the end-of-page quality row uses the same numeric tier contract as the pass.
#[test]
fn lamp_fog_dropdown_is_localised_and_live() {
let xml = include_str!("../../assets/ui/OptionsFrame.xml");
let strings = &xml[xml.find("BENILLA_ADVGFX_STRINGS = {").unwrap()
..xml.find("OPTIONS_PAGE_ROWS = {").unwrap()];
let row = xml.split("<Frame name=\"$parentRowLampFog\"").nth(1).unwrap();
let on_load = row.split("<OnLoad>").nth(1).unwrap().split("</OnLoad>").next().unwrap();
for (locale, title, labels) in [
("enUS", "Lamp Fog", ["Off", "Low", "High"]),
(
"ruRU",
"Свечение фонарей в тумане",
["Выкл", "Низкое", "Высокое"],
),
] {
let mut s = audio_harness();
s.run(&format!("function GetLocale() return '{locale}' end"))
.unwrap();
s.run(strings).unwrap();
s.run(
r#"
self = {}
function OptionsRow_OnLoad(row, cvar, title, tip)
row.cvar, row.title, row.tip = cvar, title, tip
end
function OptionsDropdownRow_Setup(row, choices) row.choices = choices end
"#,
)
.unwrap();
s.run(on_load).unwrap();
assert_eq!(s.eval::<String>("return self.title").unwrap(), title);
assert!(s
.eval::<bool>(
"return getglobal(self.tip) == BENILLA_ADVGFX.tips.LAMP_FOG and string.len(getglobal(self.tip)) > 80",
)
.unwrap());
// `lampFog` registers at Off, so seed away from the first choice before asserting that
// every selection produces the expected live write (the CVar layer suppresses no-ops).
s.run("SetCVar(self.cvar, '2')").unwrap();
let _ = s.take_cvar_changes();
for (tier, label) in labels.iter().enumerate() {
assert_eq!(
s.eval::<String>(&format!("return self.choices[{}].text", tier + 1))
.unwrap(),
*label
);
let _ = s.take_cvar_changes();
s.run(&format!(
"SetCVar(self.cvar, self.choices[{}].value)",
tier + 1
))
.unwrap();
assert_eq!(
s.take_cvar_changes(),
vec![("lampFog".to_string(), tier.to_string())]
);
}
}
}
#[test]
fn water_quality_writes_numeric_tiers_with_localised_labels() {
benilla_formats::wow_data_or_skip!();
@@ -2067,7 +2128,7 @@ fn water_quality_writes_numeric_tiers_with_localised_labels() {
let mut s = harness_on(s);
s.run("ShowUIPanel(BenillaOptionsFrame) BenillaOptionsFrameCategoryListRowAdvancedGraphics:Click()").unwrap();
// MONKEY (volumetric fog): account for the atmosphere row after water.
assert_eq!(s.eval::<usize>("return table.getn(OPTIONS_PAGE_ROWS.AdvancedGraphics)").unwrap(), 18);
assert_eq!(s.eval::<usize>("return table.getn(OPTIONS_PAGE_ROWS.AdvancedGraphics)").unwrap(), 21);
assert_eq!(s.eval::<String>("return OPTIONS_PAGE_ROWS.AdvancedGraphics[2]").unwrap(), "RowWaterQuality");
assert_eq!(s.eval::<String>("return OPTIONS_PAGE_ROWS.AdvancedGraphics[16]").unwrap(), "RowLavaGlow");
assert_eq!(s.eval::<String>(&format!("return {ADVGFX}RowWaterQualityDropdownText:GetText()")).unwrap(), labels[1]);
@@ -3000,6 +3061,8 @@ fn every_row_tooltip_key_resolves_in_the_real_global_strings() {
const BENILLA_OWNED: &[(&str, &str)] = &[
// MONKEY (volumetric fog): the row owns a translated tooltip too.
("BENILLA_TOOLTIP_VOLUMETRIC_FOG", "AdvancedGraphicsRowVolumetricFog"),
// MONKEY (lampfog): the quality row owns a translated tooltip too.
("BENILLA_TOOLTIP_LAMP_FOG", "AdvancedGraphicsRowLampFog"),
("BENILLA_TOOLTIP_WATER_QUALITY", "AdvancedGraphicsRowWaterQuality"),
("BENILLA_TOOLTIP_LAVA_GLOW", "AdvancedGraphicsRowLavaGlow"),
("BENILLA_TOOLTIP_RENDER_SCALE", "GraphicsRowRenderScale"),
+48 -28
View File
@@ -101,17 +101,17 @@
## Modules (top-level, per crate)
- **benilla-adt** (lib.rs): combined_alpha
- **benilla-app** (lib.rs): addon_harness area area_poi area_trigger asset_churn aura_visual bindings blob_shadow bowstring camera_shake capture char_create char_select chat_bubble chr_classes cinematic combat_log combat_text console crash creature_anim cursor cvars death debug_panel dev doodad_events entities fishing_line footprints game_plugins game_tip glue glue_strings go_anim go_templates hover_log items loading_screen local_state login minimap name_persist nameplates names net npc_text opaque2d pending_item_ops perf pipe_warm player poi_marker portrait preflight probe_shield query_cache quest_markers raid_marks ranged_flex realm_select realmlist run_mode screen_fade screenshot shaders shutdown smart_rect sound spell swing_refusal target test_support text_filter text_reshape textinput transport tutorial ui_action ui_auction ui_aura ui_bank ui_battlefield ui_battlefield_positions ui_battlefield_score ui_bind_confirm ui_binder ui_cast ui_char ui_chat ui_craft ui_dialog_verbs ui_dressup ui_duel ui_follow ui_gamma ui_gm_ticket ui_gossip ui_guild ui_hide ui_honor ui_inspect ui_instance ui_item_text ui_items ui_layout ui_logout ui_loot ui_loot_roll ui_macro ui_mail ui_merchant ui_mirror ui_models ui_net ui_party ui_pass ui_pet ui_pet_book ui_pet_doll ui_pet_stats ui_petition ui_quest ui_quest_log ui_quest_share ui_reputation ui_saved ui_script ui_session ui_shapeshift ui_social ui_spellbook ui_stable ui_summon ui_tabard ui_talent ui_talent_wipe ui_taxi ui_text ui_tooltip ui_trade ui_tradeskill ui_trainer ui_unit ui_world_map video vplates weapon_trail world_backdrop world_state world_state_ui
- **benilla-assets** (lib.rs): adt anim_rng blp column_grid coords gpu_blp m2 materials minimap_grid model spatial_cache terrain tex_filter trace wdt wmo world_assets
- **benilla-formats** (lib.rs): anim_data area_poi area_sound area_table area_trigger auction_house bank_bag_slot_prices camera_shakes chain characters chat_channels chr_classes cinematics creature_families creature_sound creature_types creatures dbc death_thud durability elevators emit_timing emote_text emotes environmental_damage exhaustion factions footsteps game_tips gameobjects garble gm_ticket_category ground_effects install item_random_properties item_sounds item_visuals itembagfamily itemclass items itemsets itemsubclass languages light liquid loading_screen lock lock_type macro_icons maps material minimap_translate models npc_greeting page_text_material particles pet_stats quest_headers quest_info race_pvp_team race_sound ribbons server_messages sheathe skill_lines sound_entries sound_provider sound_water spell_focus spell_mechanic spell_visual spells stable_slot_prices stationery talents taxi taxi_nodes taxi_path terrain text_filter_lists tga transport_period transports unit_blood value_track vocal_ui_sounds wdl weapon_impact weapon_swing wmo_area world_map_area world_map_continent world_map_overlay world_state_ui zone_map
- **benilla-m2** (lib.rs): error model skin tests track
- **benilla-mpq** (lib.rs): crypto
- **benilla-protocol** (lib.rs): auth events guid messages wire world
- **benilla-srp** (lib.rs): vanilla_header
- **benilla-ui** (lib.rs): bindings_xml civil framexml justify layout loader markup messages order script source strings toc widget
- **benilla-visual** (lib.rs): relight
- **benilla-world** (lib.rs): art_scope assets bgwin billboard boot build_id clouds clutter collision decal dev_state doodad_anim entity_shade exterior_cull ffx_glow final_pass frame_pace ground_fx instance_tint interact interior lighting liquid log_ring mac_quit map_proj mat_anim_table mesh_tag model_fade model_forms model_render modkeys particles ribbons ride_frame rig_anim rig_palette rig_rider schedule shaders sky sky_order skybox static_gx static_merge straddle sun surface terrain_stream thread_qos view vis_chain water_fx wdl weather wmo_portal world_census world_map world_plugins world_point world_unit worldview zfill
- **benilla-adt** (lib.rs): combined_alpha
- **benilla-app** (lib.rs): addon_harness area area_poi area_trigger asset_churn aura_visual bindings blob_shadow bowstring camera_shake capture char_create char_select character_shadow chat_bubble chr_classes cinematic combat_log combat_text console crash creature_anim cursor cvars death debug_panel dev doodad_events dynamic_interior entities fishing_line footprints game_plugins game_tip glue glue_strings go_anim go_templates hover_log items loading_screen local_state login minimap monkey_gfx name_persist nameplates names net npc_text opaque2d pending_item_ops perf pipe_warm player poi_marker portrait preflight probe_shield query_cache quest_markers raid_marks ranged_flex realm_select realmlist run_mode screen_fade screenshot shaders shadow_core shutdown smart_rect sound spell swing_refusal target test_support text_filter text_reshape textinput torch_shadow transport tutorial ui_action ui_auction ui_aura ui_bank ui_battlefield ui_battlefield_positions ui_battlefield_score ui_bind_confirm ui_binder ui_cast ui_char ui_chat ui_craft ui_dialog_verbs ui_dressup ui_duel ui_follow ui_gamma ui_gm_ticket ui_gossip ui_guild ui_hide ui_honor ui_inspect ui_instance ui_item_text ui_items ui_layout ui_logout ui_loot ui_loot_roll ui_macro ui_mail ui_merchant ui_mirror ui_models ui_net ui_party ui_pass ui_pet ui_pet_book ui_pet_doll ui_pet_stats ui_petition ui_quest ui_quest_log ui_quest_share ui_reputation ui_saved ui_script ui_session ui_shapeshift ui_social ui_spellbook ui_stable ui_summon ui_tabard ui_talent ui_talent_wipe ui_taxi ui_text ui_tooltip ui_trade ui_tradeskill ui_trainer ui_unit ui_world_map video volumetric_fog vplates weapon_trail world_backdrop world_shadow world_state world_state_ui
- **benilla-assets** (lib.rs): adt anim_rng blp column_grid coords gpu_blp m2 materials minimap_grid model spatial_cache terrain tex_filter trace water_depth wdt wmo world_assets
- **benilla-formats** (lib.rs): anim_data area_poi area_sound area_table area_trigger auction_house bank_bag_slot_prices camera_shakes chain characters chat_channels chr_classes cinematics creature_families creature_sound creature_types creatures dbc death_thud durability elevators emit_timing emote_text emotes environmental_damage exhaustion factions fire_light footsteps game_tips gameobjects garble gm_ticket_category ground_effects install item_random_properties item_sounds item_visuals itembagfamily itemclass items itemsets itemsubclass languages light liquid loading_screen lock lock_type macro_icons maps material minimap_translate models npc_greeting page_text_material particles pet_stats quest_headers quest_info race_pvp_team race_sound ribbons room_claim server_messages sheathe skill_lines sound_entries sound_provider sound_water spell_focus spell_mechanic spell_visual spells stable_slot_prices stationery talents taxi taxi_nodes taxi_path terrain text_filter_lists tga transport_period transports unit_blood value_track vocal_ui_sounds wdl weapon_impact weapon_swing wmo_area world_map_area world_map_continent world_map_overlay world_state_ui zone_map
- **benilla-m2** (lib.rs): error model skin tests track
- **benilla-mpq** (lib.rs): crypto
- **benilla-protocol** (lib.rs): auth events guid messages wire world
- **benilla-srp** (lib.rs): vanilla_header
- **benilla-ui** (lib.rs): bindings_xml civil framexml justify layout loader markup messages order script source strings toc widget
- **benilla-visual** (lib.rs): relight
- **benilla-world** (lib.rs): art_scope assets bgwin billboard boot build_id clouds clutter collision decal dev_state doodad_anim entity_shade exterior_cull ffx_glow final_pass frame_pace ground_fx instance_tint interact interior lighting liquid log_ring mac_quit map_proj mat_anim_table mesh_tag model_fade model_forms model_render modkeys particles ribbons ride_frame rig_anim rig_palette rig_rider schedule shaders sky sky_order skybox static_gx static_merge straddle sun surface terrain_stream thread_qos view vis_chain water_fx wdl weather wmo_portal world_census world_map world_plugins world_point world_unit worldview zfill
## CLI binaries
@@ -123,22 +123,29 @@
## WGSL shaders (`crates/*/src/shaders/`, embedded)
- `embedded://benilla_app/shaders/shadow_caster.wgsl`
- `embedded://benilla_app/shaders/shadow_caster_cutout_prepass.wgsl`
- `embedded://benilla_app/shaders/ui_add.wgsl`
- `embedded://benilla_app/shaders/ui_gamma.wgsl`
- `embedded://benilla_app/shaders/ui_node_gamma.wgsl`
- `embedded://benilla_app/shaders/ui_quad.wgsl`
- `embedded://benilla_app/shaders/ui_slice_gamma.wgsl`
- `embedded://benilla_assets/shaders/enhanced_water.wgsl`
- `embedded://benilla_assets/shaders/fog_hook.wgsl`
- `embedded://benilla_assets/shaders/liquid.wgsl`
- `embedded://benilla_assets/shaders/monkey_frame.wgsl`
- `embedded://benilla_assets/shaders/shadow_hook.wgsl`
- `embedded://benilla_assets/shaders/terrain.wgsl`
- `embedded://benilla_assets/shaders/wdl.wgsl`
- `embedded://benilla_assets/shaders/wow_model.wgsl`
- `embedded://benilla_world/shaders/celestial.wgsl`
- `embedded://benilla_world/shaders/cloud.wgsl`
- `embedded://benilla_world/shaders/ffx_glow.wgsl`
- `embedded://benilla_world/shaders/sky_vertex.wgsl`
- `embedded://benilla_world/shaders/sky.wgsl`
- `embedded://benilla_world/shaders/sky_vertex.wgsl`
- `embedded://benilla_world/shaders/star.wgsl`
- `embedded://benilla_world/shaders/static_gx.wgsl`
- `embedded://benilla_world/shaders/torch_depth.wgsl`
- `embedded://benilla_world/shaders/wow_effect.wgsl`
## Instruments — `$WOW_*` switches (env-var read sites)
@@ -152,6 +159,7 @@
- `WOW_ADDON_PROBE_TRACE` — benilla-protocol/examples/addon_chat_probe.rs
- `WOW_ALLOW_ACCOUNT` — benilla-app/src/login/mod.rs, benilla-app/src/run_mode.rs
- `WOW_AMBIGUITY_DUMP` — benilla-app/src/game_plugins.rs
- `WOW_AMBIGUITY_DUMP_POST` — benilla-app/src/game_plugins.rs
- `WOW_ANIM_COST` — benilla-app/src/creature_anim/driver.rs
- `WOW_ANIM_PARK_ALL` — benilla-app/src/creature_anim/lod.rs
- `WOW_ANISO` — benilla-app/src/cvars.rs, benilla-assets/src/tex_filter.rs
@@ -167,6 +175,7 @@
- `WOW_AUDIT_WMO` — benilla-world/src/wmo_portal/audit/mod.rs
- `WOW_BARE_DOODAD_COLLIDERS` — benilla-world/src/terrain_stream/collider.rs
- `WOW_BG` — benilla-world/src/bgwin.rs
- `WOW_BLEED` — benilla-world/src/lighting/daylight.rs
- `WOW_BLOB_VIS` — benilla-world/src/terrain_stream/merge.rs
- `WOW_BLOB_VIS_UID` — benilla-world/src/terrain_stream/merge.rs
- `WOW_BOOTH_DUMP` — benilla-app/src/portrait/test_bake.rs
@@ -174,13 +183,14 @@
- `WOW_BUBBLE_TRACE` — benilla-app/src/chat_bubble.rs
- `WOW_CAM_CHANGED` — benilla-app/src/perf/mod.rs
- `WOW_CAM_DUMP` — benilla-app/src/player/camera.rs
- `WOW_CAPTURE` — benilla-app/src/capture/mod.rs, benilla-app/src/capture/scenarios.rs, benilla-app/src/char_select/addons.rs, benilla-app/src/cvars.rs, benilla-app/src/lib.rs, benilla-app/src/local_state.rs, benilla-app/src/login/mod.rs, benilla-app/src/name_persist.rs, benilla-app/src/net.rs, benilla-app/src/player/camera_saved.rs, benilla-app/src/run_mode.rs, benilla-app/src/sound/mod.rs, benilla-app/src/ui_chat/settings.rs, benilla-app/src/ui_chat/tests.rs, benilla-app/src/ui_macro/tests.rs, benilla-app/src/ui_saved.rs, benilla-app/src/ui_script/addons.rs, benilla-app/src/ui_script/mod.rs, benilla-app/src/ui_script/world_entry_tests.rs, benilla-app/src/video.rs, benilla-world/src/bgwin.rs, benilla-world/src/clouds/mod.rs, benilla-world/src/dev_state.rs
- `WOW_CAPTURE` — benilla-app/src/capture/mod.rs, benilla-app/src/capture/scenarios.rs, benilla-app/src/char_select/addons.rs, benilla-app/src/cvars.rs, benilla-app/src/lib.rs, benilla-app/src/local_state.rs, benilla-app/src/login/mod.rs, benilla-app/src/name_persist.rs, benilla-app/src/net.rs, benilla-app/src/player/camera_saved.rs, benilla-app/src/run_mode.rs, benilla-app/src/sound/mod.rs, benilla-app/src/ui_chat/settings.rs, benilla-app/src/ui_chat/tests.rs, benilla-app/src/ui_macro/tests.rs, benilla-app/src/ui_saved.rs, benilla-app/src/ui_script/addons.rs, benilla-app/src/ui_script/mod.rs, benilla-app/src/ui_script/world_entry_tests.rs, benilla-app/src/video.rs, benilla-app/src/volumetric_fog.rs, benilla-world/src/bgwin.rs, benilla-world/src/clouds/mod.rs, benilla-world/src/dev_state.rs, benilla-world/src/liquid/surface.rs
- `WOW_CAPTURE_AGE` — benilla-app/src/capture/mod.rs
- `WOW_CAPTURE_DEADLINE` — benilla-app/src/capture/mod.rs
- `WOW_CAPTURE_OUT` — benilla-app/src/capture/mod.rs
- `WOW_CAPTURE_REHOVER` — benilla-app/src/ui_script/mod.rs
- `WOW_CAPTURE_STABLE` — benilla-app/src/capture/mod.rs
- `WOW_CAPTURE_UI` — benilla-app/src/capture/scenarios.rs, benilla-app/src/ui_script/mod.rs, benilla-app/src/video.rs
- `WOW_CAPTURE_WATER_T` — benilla-world/src/liquid/surface.rs, benilla-world/src/liquid/waves.rs
- `WOW_CAST_TRACE` — benilla-app/src/net.rs
- `WOW_CHAR` — benilla-app/src/capture/probe_mail.rs, benilla-app/src/char_select/mod.rs, benilla-app/src/cvars.rs, benilla-app/src/login/mod.rs, benilla-app/src/net.rs, benilla-app/src/net/io.rs, benilla-app/src/realm_select/smoke.rs, benilla-app/src/run_mode.rs
- `WOW_CHARCREATE_DIALS` — benilla-app/src/char_create/mod.rs
@@ -209,10 +219,12 @@
- `WOW_CRASH_INJECT` — benilla-app/src/perf/crash_inject.rs
- `WOW_CREATE_SPLINE` — benilla-app/src/net/motion/spline.rs
- `WOW_CREATE_TEST` — benilla-app/src/portrait/glue_booth.rs, benilla-world/src/bgwin.rs
- `WOW_CULL_TRACE` — benilla-world/src/exterior_cull.rs
- `WOW_CULLDUMP` — benilla-world/src/wmo_portal/mod.rs
- `WOW_CULL_TRACE` — benilla-world/src/exterior_cull.rs
- `WOW_CURSOR_TRACE` — benilla-app/src/cursor.rs
- `WOW_DATA` — benilla-app/src/local_state.rs, benilla-formats/src/install.rs, benilla-formats/tests/wow_data_env.rs, benilla-formats/tests/wow_data_none.rs
- `WOW_DAYLIGHT` — benilla-world/src/lighting/daylight.rs
- `WOW_DAYLIGHT_SEAM_EPS` — benilla-world/src/lighting/daylight.rs
- `WOW_DEMO_BOTTOM_BARS` — benilla-app/src/ui_script/mod.rs
- `WOW_DEPTH` — benilla-app/src/capture/depth_probe.rs, benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
- `WOW_DEPTH_AFTER` — benilla-app/src/capture/depth_probe.rs
@@ -234,6 +246,7 @@
- `WOW_FEED_GATE_CHECK` — benilla-app/src/ui_script/gate.rs, benilla-world/src/bgwin.rs
- `WOW_FEED_GATE_TRACE` — benilla-app/src/ui_script/gate.rs, benilla-world/src/bgwin.rs
- `WOW_FIXED_DT` — benilla-world/src/frame_pace.rs
- `WOW_FOGMODEL` — benilla-world/src/lighting/fog_model.rs
- `WOW_FOG_DUMP` — benilla-world/src/lighting/resolve.rs, benilla-world/src/liquid/query.rs
- `WOW_FOLLOW_TRACE` — benilla-app/src/player/follow.rs
- `WOW_FORCE_SUB` — benilla-world/src/liquid/mod.rs
@@ -284,6 +297,7 @@
- `WOW_IO_BUFFER` — benilla-app/src/sound/mixer.rs
- `WOW_JITTER` — benilla-app/src/capture/probes/jitter.rs, benilla-app/src/dev.rs
- `WOW_JITTER_RAW` — benilla-app/src/capture/probes/jitter.rs
- `WOW_LAMPFOG` — benilla-app/src/volumetric_fog.rs
- `WOW_LAYOUT_DERIVE_TRACE` — benilla-ui/src/script/model.rs
- `WOW_LAYOUT_PROF` — benilla-ui/src/script/layout.rs
- `WOW_LAYOUT_TOUCH_TRACE` — benilla-ui/src/script/model.rs
@@ -310,10 +324,10 @@
- `WOW_MATANIM_DUTY` — benilla-world/src/doodad_anim/mat_anim.rs
- `WOW_MATANIM_LIVE` — benilla-world/src/doodad_anim/mat_anim.rs
- `WOW_MATANIM_PROBE` — benilla-world/src/doodad_anim/mat_anim.rs
- `WOW_MERGE_CENSUS` — benilla-world/src/static_merge.rs
- `WOW_MERGE_FADERS` — benilla-world/src/terrain_stream/merge.rs
- `WOW_MERGED_FADE` — benilla-assets/src/materials.rs
- `WOW_MERGED_SLOT` — benilla-assets/src/materials.rs
- `WOW_MERGE_CENSUS` — benilla-world/src/static_merge.rs
- `WOW_MERGE_FADERS` — benilla-world/src/terrain_stream/merge.rs
- `WOW_MESH_EVENTS` — benilla-app/src/perf/mod.rs
- `WOW_MESH_HOLDERS` — benilla-app/src/perf/mod.rs
- `WOW_MESH_TOUCH` — benilla-app/src/perf/mod.rs
@@ -333,6 +347,10 @@
- `WOW_NAME_DIST` — benilla-app/src/capture/mod.rs
- `WOW_NAME_EL` — benilla-app/src/capture/mod.rs
- `WOW_NAME_H` — benilla-app/src/capture/mod.rs
- `WOW_NODE_PROBE` — benilla-app/src/capture/probes/world_census.rs, benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
- `WOW_NOPORTALCULL` — benilla-world/src/dev_state.rs
- `WOW_NOSOUND` — benilla-app/src/sound/mod.rs
- `WOW_NOVSYNC` — benilla-app/src/video.rs, benilla-world/src/worldview.rs
- `WOW_NO_ALPHATEST` — benilla-world/src/model_render.rs
- `WOW_NO_ANIM_LOD` — benilla-app/src/creature_anim/lod.rs, benilla-app/src/lib.rs
- `WOW_NO_BC` — benilla-assets/src/gpu_blp.rs
@@ -352,18 +370,14 @@
- `WOW_NO_TILE_CELLS` — benilla-world/src/terrain_stream/furnish.rs
- `WOW_NO_TILE_DROP` — benilla-world/src/terrain_stream.rs
- `WOW_NO_TWIST` — benilla-app/src/creature_anim/twist.rs
- `WOW_NODE_PROBE` — benilla-app/src/capture/probes/world_census.rs, benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
- `WOW_NOPORTALCULL` — benilla-world/src/dev_state.rs
- `WOW_NOSOUND` — benilla-app/src/sound/mod.rs
- `WOW_NOVSYNC` — benilla-app/src/video.rs, benilla-world/src/worldview.rs
- `WOW_OCEAN_DEPTH_DIV` — benilla-formats/src/liquid.rs
- `WOW_PANEL` — benilla-world/src/dev_state.rs
- `WOW_PART_CHURN` — benilla-app/src/perf/mod.rs
- `WOW_PARTICLE_CENSUS` — benilla-app/src/capture/probes/particle_census.rs, benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
- `WOW_PARTICLE_DEPTHDUMP` — benilla-world/src/particles/depthdump.rs
- `WOW_PARTICLE_DEPTHDUMP_BONES` — benilla-world/src/particles/depthdump.rs
- `WOW_PARTICLE_FLAT` — benilla-world/src/particles/render.rs
- `WOW_PARTICLE_NODEPTH` — benilla-world/src/particles/render.rs
- `WOW_PART_CHURN` — benilla-app/src/perf/mod.rs
- `WOW_PASS` — benilla-app/src/login/mod.rs, benilla-app/src/net.rs, benilla-app/src/run_mode.rs
- `WOW_PERF_HUD` — benilla-app/src/perf/hud.rs
- `WOW_PHASE` — benilla-app/src/capture/phase_probe.rs, benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
@@ -387,15 +401,15 @@
- `WOW_PIN_UID` — benilla-world/src/wmo_portal/audit/pin.rs
- `WOW_PIN_WMO` — benilla-world/src/wmo_portal/audit/pin.rs
- `WOW_PIPE_TRACE` — benilla-app/src/pipe_warm/mod.rs
- `WOW_POINTS_DUMP` — benilla-world/src/lighting/global_light.rs
- `WOW_POINTS_DUMP` — benilla-world/src/lighting/daylight.rs, benilla-world/src/lighting/global_light.rs, benilla-world/src/lighting/lava_light.rs
- `WOW_PORTRAIT_TEST` — benilla-app/src/portrait/mod.rs, benilla-app/src/portrait/test_bake.rs, benilla-world/src/bgwin.rs
- `WOW_PORTRAIT_TEST_SKIN` — benilla-app/src/portrait/test_bake.rs
- `WOW_PROBE` — benilla-app/src/dev.rs, benilla-app/src/lib.rs, benilla-world/src/bgwin.rs
- `WOW_PROBE_AUCTION` — benilla-app/src/dev.rs
- `WOW_PROBE_BANK` — benilla-app/src/dev.rs
- `WOW_PROBE_BG` — benilla-app/src/capture/probe_bg.rs, benilla-app/src/dev.rs
- `WOW_PROBE_BG_SAMPLES` — benilla-app/src/capture/probe_bg.rs
- `WOW_PROBE_BGQUEUE` — benilla-app/src/dev.rs
- `WOW_PROBE_BG_SAMPLES` — benilla-app/src/capture/probe_bg.rs
- `WOW_PROBE_BINDER` — benilla-app/src/dev.rs
- `WOW_PROBE_BOOK` — benilla-app/src/dev.rs
- `WOW_PROBE_CAM` — benilla-app/src/capture/probe_cam.rs
@@ -445,8 +459,8 @@
- `WOW_REMOTE_IDLE_GATE` — benilla-app/src/net/motion/remote.rs
- `WOW_REMOTE_SNAP` — benilla-app/src/net/motion/remote.rs
- `WOW_RENDER_SCALE` — benilla-app/src/cvars.rs, benilla-app/src/world_backdrop.rs
- `WOW_RES_CENSUS` — benilla-app/src/perf/census.rs
- `WOW_RESIZE` — benilla-app/src/capture/mod.rs
- `WOW_RES_CENSUS` — benilla-app/src/perf/census.rs
- `WOW_REVEAL` — benilla-app/src/capture/probes/reveal.rs, benilla-app/src/dev.rs
- `WOW_RIG` — benilla-app/src/capture/probe_rig.rs, benilla-app/src/dev.rs, benilla-app/src/login/mod.rs, benilla-app/src/net.rs, benilla-app/src/probe_shield.rs, benilla-app/src/realm_select/smoke.rs, benilla-app/src/run_mode.rs, benilla-world/src/bgwin.rs
- `WOW_RIG_CENSUS` — benilla-world/src/rig_palette.rs
@@ -455,10 +469,12 @@
- `WOW_ROW_BLOAT` — benilla-app/src/perf/census.rs, benilla-app/src/perf/mod.rs
- `WOW_SCHED_CENSUS` — benilla-app/src/dev.rs, benilla-world/src/bgwin.rs
- `WOW_SHADE_CENSUS` — benilla-world/src/entity_shade.rs
- `WOW_SHADOW_TRACE` — benilla-app/src/shadow_core.rs
- `WOW_SHOT_REQUIRE` — benilla-app/src/capture/live_shot.rs
- `WOW_SHOT_REQUIRE_DIST` — benilla-app/src/capture/live_shot.rs
- `WOW_SKY_DEPTH` — benilla-assets/src/materials.rs
- `WOW_SOUND_PROBE` — benilla-app/src/sound/probe.rs
- `WOW_SPELL_LIGHT` — benilla-app/src/entities/spell_fx/lifecycle.rs
- `WOW_STALL` — benilla-app/src/capture/probes/stall.rs, benilla-app/src/dev.rs
- `WOW_STALL_INJECT` — benilla-app/src/perf/stall.rs
- `WOW_STALL_SAMPLE` — benilla-app/src/perf/stall.rs
@@ -468,8 +484,8 @@
- `WOW_STATIC_GX_WMO` — benilla-world/src/static_gx/mod.rs
- `WOW_STATIC_MERGE` — benilla-world/src/terrain_stream/merge.rs
- `WOW_STREAM_TRACE` — benilla-app/src/perf/mod.rs
- `WOW_TAB_TRACE` — benilla-app/src/target/scan.rs
- `WOW_TABHOVER` — benilla-app/src/capture/fixtures.rs
- `WOW_TAB_TRACE` — benilla-app/src/target/scan.rs
- `WOW_TEARDOWN_INJECT` — benilla-app/src/perf/stall.rs
- `WOW_TEXT_PROBE` — benilla-app/src/ui_script/extract/text.rs
- `WOW_THREADS` — benilla-world/src/boot.rs
@@ -477,9 +493,11 @@
- `WOW_TILE_TRACE` — benilla-app/src/ui_models/mod.rs
- `WOW_TILE_UNLOAD` — benilla-world/src/assets/mod.rs
- `WOW_TINT_PROBE` — benilla-app/src/aura_visual.rs
- `WOW_TORCH_TRACE` — benilla-app/src/torch_shadow.rs, benilla-world/src/static_gx/torch_depth.rs
- `WOW_TRAIL_CENSUS` — benilla-app/src/capture/probes/trail_census.rs, benilla-app/src/dev.rs
- `WOW_TRILINEAR` — benilla-app/src/cvars.rs, benilla-assets/src/tex_filter.rs
- `WOW_TWIST_GAP` — benilla-app/src/player/body_pose.rs
- `WOW_UISCRIPT_DUMP` — benilla-app/tests/ui_script_wall.rs
- `WOW_UI_COST` — benilla-app/src/ui_script/extract/mod.rs
- `WOW_UI_DIFF` — benilla-app/src/ui_pass.rs, benilla-app/src/ui_script/extract/mod.rs
- `WOW_UI_GATE` — benilla-app/src/ui_script/extract/mod.rs
@@ -488,20 +506,22 @@
- `WOW_UI_PROBE` — benilla-app/src/ui_pass.rs
- `WOW_UI_SCALE` — benilla-app/src/cvars.rs, benilla-app/src/ui_script/mod.rs
- `WOW_UI_SPLICE_VERIFY` — benilla-app/src/ui_script/extract/mod.rs
- `WOW_UISCRIPT_DUMP` — benilla-app/tests/ui_script_wall.rs
- `WOW_UNATTENDED` — benilla-app/src/login/mod.rs, benilla-app/src/net.rs, benilla-app/src/run_mode.rs, benilla-world/src/bgwin.rs
- `WOW_UNIT_VISUALS` — benilla-app/src/capture/probes/visual_census.rs, benilla-app/src/dev.rs
- `WOW_UNIT_VISUALS_RADIUS` — benilla-app/src/capture/probes/visual_census.rs
- `WOW_UPLOAD_BUDGET` — benilla-world/src/world_plugins.rs
- `WOW_USER` — benilla-app/src/login/mod.rs, benilla-app/src/net.rs, benilla-app/src/run_mode.rs
- `WOW_VIS_DUMP` — benilla-app/src/capture/probes/live_fps.rs
- `WOW_VIS_TRACE` — benilla-world/src/model_render/visibility.rs
- `WOW_VISTA_AT` — benilla-app/src/capture/mod.rs
- `WOW_VISTA_FACE` — benilla-app/src/capture/mod.rs
- `WOW_VISTA_MIN` — benilla-app/src/capture/mod.rs
- `WOW_VISTA_PITCH` — benilla-app/src/capture/mod.rs
- `WOW_VIS_DUMP` — benilla-app/src/capture/probes/live_fps.rs
- `WOW_VIS_TRACE` — benilla-world/src/model_render/visibility.rs
- `WOW_VOLFOG` — benilla-app/src/volumetric_fog.rs
- `WOW_VOLFOG_SHAFT_GAIN` — benilla-app/src/volumetric_fog.rs
- `WOW_VPLATE_TRACE` — benilla-app/src/vplates.rs
- `WOW_WARM_SLICE` — benilla-app/src/pipe_warm/mod.rs
- `WOW_WATER` — benilla-world/src/liquid/scene_depth.rs
- `WOW_WATER_CLIP` — benilla-assets/src/materials.rs
- `WOW_WAVE_DUMP` — benilla-world/src/ffx_glow.rs
- `WOW_WEATHER` — benilla-world/src/weather/mod.rs