Foliage wind is a lighting-preset member but bypasses VideoConfig. Read back its world resource in the shared preset clamp test so the merged row is covered like every other member.
Co-Authored-By: GPT-5.6 Sol (Codex)
Remove merge-time blank separators so the water, post, sky, and wind attribution rows remain in the single required table.
Co-Authored-By: GPT-5.6 Sol (Codex)
The wind lane's unverified closer handoff coordinates put the capture camera inside a Goldshire building. Restore the open-grass coordinates used by the lane's successful before/after captures.
Co-Authored-By: GPT-5.6 Sol (Codex)
The cloud FX reader is registered from CloudsPlugin in LightingConsumeSet, outside the source file inspected by the ordering census. Record that cross-file registration explicitly.
Co-Authored-By: GPT-5.6 Sol (Codex)
Naga Oil treats a trailing digit as an invalid composable-module identifier. Rename the remaining sky, water, and shadow helpers and locals without changing their calculations.
Co-Authored-By: GPT-5.6 Sol (Codex)
Framed with the vista instrument: Elwynn above the canopy (the old eye stood
inside a tree), Redridge from the known-good Lakeshire dock eye with a wider
look, Hyjal above the terrain (the Light.dbc sphere centre z is underground),
Ironforge over a floor face inside the city (the old eye was outside the WMO).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sun-fog strength 0.25 / angle 0.4 / lean 0.4, end-fog lean 0.25: the first
pass turned dusk ridges into flat orange cut-outs against a blue sky. The
dome's low band now MIXES toward the far fog colour by 15 deg (an offset
over-pushed an already warm dusk ring). update_fog_model joins the
ordering test's ALLOWED list (it runs in the resolve set, after it).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wetness ramps up while it rains (~90 s to soaked) and dries over ~4 min; ripple clock;
rainSurfaces resource; env WOW_RAIN_SURFACES / WOW_WETNESS / WOW_WET_T capture overrides.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Let deterministic captures read an explicitly selected BENILLA_HOME config while keeping every capture persistence path disabled. This makes the post ON/OFF homes effective without weakening capture hermeticity.
Co-Authored-By: GPT-5.6 Sol (Codex)
fog_hook.wgsl: radial exponential fog fitted to the zone's 1.12 start/end
(60 % survival mid-span, closed over the last stretch so the zone end
holds), optional height fog, end-fog colour shift, sun-fog lobe; interior
WMO spans stay classic; the WDL hull pair takes the far colour.
lighting/fog_model.rs fills the MonkeyFrame fog rows each frame (derived
from the 1.12 bands, or LightFogBand.dbc rows); fog_d.x carries the scene
fog end as the Modern flag, fog_d.zw the octahedral sun direction.
resolve.rs: Modern stretches the fog end with farclip past 777 only.
sky.wgsl/sky.rs: the dome's low band eases into the same far colour.
Classic packs zeros and every new path branches out.
Includes the cherry-picked p0 fix 05d6b1ad (MonkeyFrame rows fog_a..).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
benilla-formats/src/light/fog_band.rs reads our LightFogBand.dbc (the
LightFloatBand record, 13 rows per LightParams: height fog, curve blend,
sun-fog rgb/strength/angle, end-fog rgb/distance). Absent file = empty
catalog, no error. blend_chain exposes the area-light blend order so a
side table folds with the same law as the stock bands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Classify static alpha-tested tree and bush leaf batches, log accepted model paths, and apply gentle anchor-phased crown sway and flutter in both retained and fade-twin render paths. Keep animated doodads and tree shadows unchanged, and add wind capture instruments.
Co-Authored-By: GPT-5.6 Sol (Codex)
Author bend weight from source-mesh height in clutter UV1, preserve texture coordinates and cutout alpha, and apply WarcraftXL's two-wave gust, lean, phase, variance, and distance fade in the model vertex path. Fill the player plus seven nearest unit benders without per-frame allocation.
Co-Authored-By: GPT-5.6 Sol (Codex)
Port the stateless gust and veer profile, scale it from live weather, and publish one sample through the WindField resource and MonkeyFrame each frame. Add the foliageWind tier CVar, High preset value, and Advanced Graphics row.
Co-Authored-By: GPT-5.6 Sol (Codex)
Preserve p0 fog and MonkeyFrame hooks, water's row-view ABI, and the post lane's emissive, bloom, sun-shaft, grading, cvar, and options work.
Co-Authored-By: GPT-5.6 Sol (Codex)
enhanced_water.wgsl keeps the water lane's row view of the shared light buffer (fixes the WGSL
composer failure); the p0 fog hook reads the MonkeyFrame block through water_monkey() (row 533).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One table of every WarcraftXL-derived file (Benilla file | WarcraftXL module |
Source files | What was taken), pre-filled with the enhanced-water blocks and
the swimmer bob, plus the planned ports. The standard header line
("Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim —
module ..., ...") is added to enhanced_water.wgsl and water_fx/bob.rs.
Linked from README, LIGHTING and WATER. WATER.md no longer says the WarcraftXL
water module is for the 1.12 client: it is a 3.3.5a client module.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The combine's dither lane was armed only by the WOW_DITHER env var. It is now
the `skyDither` cvar (0/1, default 0 = reference look; Graphics preset High
= 1) with an Advanced Graphics "Sky Dithering" checkbox row (EN + RU). The
cvar lands on `benilla_world::ffx_glow::SkyDither` (extracted) through the new
`benilla-app/src/monkey_gfx.rs` bridge; WOW_DITHER=1 still forces it on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>