An indoor unit was left with NO ground shadow when characterShadows was on: the
realtime sun shadow is gated out of WMO interiors (correct — no sun reaches a
sealed room), and the oval blob was hidden for every unit. So indoor characters
floated. Now the blob is hidden only for OUTDOOR units (where the realtime cast
owns them); INDOOR units (UnitWmoRoom::room() = Some) keep the soft oval, so they
stay grounded. Folded the old blanket early-return into a per-unit gate in the
projection loop. Confirmed in-game. Default path (both cvars off) unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>