#87: mech armour PANELS now darken with damage -- the .DZM material system was loaded and unused

Players: "the actual enemy mech in external view is not showing darkened armor
panels".  We swapped destroyed LIMB meshes but never darkened a panel.

The 1995 game darkens armour through the MATERIALS.  MakeMechRenderables
(FUN_004cef28) built, per (damage zone, material), a watcher
FUN_004573e4(material, &zone->damageLevel, 0.1f) that snapshotted the materials
This commit is contained in:
Joe DiPrima
2026-07-31 19:52:55 -05:00
parent 5410371b0c
commit 137c151951
14 changed files with 589 additions and 1 deletions
+11
View File
@@ -2379,6 +2379,17 @@ void
if (deathHandler != 0)
((MechDeathHandler *)deathHandler)->Tick();
// ARMOUR DARKENING (issue #87): push this mech's per-zone damageLevel onto the
// materials that zone paints, so the panels darken toward 0.1x as they take
// damage. The binary hung one watcher per (zone, material) off the mech's
// renderable (FUN_004573e4, built in MakeMechRenderables) and let the renderer
// Perform them; our equivalent update is driven from here for EVERY mech --
// the enemy mech in external view is exactly the case players reported.
{
extern void BTArmourDamageTick(Entity *mech);
BTArmourDamageTick((Entity *)this);
}
// WAVE 7 Phase B: advance/render/impact the flying projectiles once per frame (viewpoint).
if (isPlayerMech && dt > 0.0001f)
BTUpdateProjectiles(dt);