Make InvisibleTrap objects invisible and non-collidable

Event objects like Fire Festival Fury Trap and Mercutio Post use
SpellObject_InvisibleTrap.m2 models which were rendering as white
tiles using WHITE1.BLP texture. These are meant to be invisible
spell trigger objects that should not obstruct player movement.

Changes:
- Added isInvisibleTrap flag to M2ModelGPU struct
- Detect models with "invisibletrap" in name during loading
- Skip rendering invisible trap instances in render loop
- Disable all collision checks (floor/wall/occlusion) for invisible traps
- Objects remain functional for spell casting but are now invisible
This commit is contained in:
Kelsi 2026-02-09 22:31:36 -08:00
parent 0f38268c24
commit 540b3cde45
3 changed files with 65 additions and 6 deletions

View file

@ -60,6 +60,7 @@ struct M2ModelGPU {
bool collisionNoBlock = false;
bool collisionStatue = false;
bool isSmallFoliage = false; // Small foliage (bushes, grass, plants) - skip during taxi
bool isInvisibleTrap = false; // Invisible trap objects (don't render, no collision)
// Collision mesh with spatial grid (from M2 bounding geometry)
struct CollisionMesh {