mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-08-04 03:45:03 -04:00
The Stranglethorn Vale troll ruins sway like trees because "thorn" is a foliage token and it sits inside "Stranglethorn". Every StranglethornRuins piece, and the cliff rocks with it, was classified as foliage and handed to the wind shader. Foliage tokens have to be matched as substrings — model names run words together with no separator, so StranglethornFern01 would not match on a word boundary — and that is what lets a short token land inside an unrelated word. An audit of every M2 in the data turned up the same fault well beyond the reported one: "corn" inside Corner put wind on wall and arch corners, "hops" inside ShopSign on shop signs, "tree" inside StreetSign on street signs, "crop" inside Outcrop on rock outcrops, "herb" inside Herbalism on profession signs, "vine" inside DivineShield. A list of exceptions would not hold, so rank the matches instead. These names are head-final compounds — the last word says what the model is — so the match ending furthest right wins, with a longer token taking a tie at the same end position, which is how "corner" beats the "corn" inside it. StranglethornRuins is then a ruin while DustwallowTree, StoneTree and DeadwindPassRockTree stay trees, none of which a veto list would have managed. 73 models stop swaying; no plant loses its wind. isFoliageLike also drives collision and animation, so these props were walk-through with their animation disabled as well.