Crusader_Decomp/docs/map_renderer/editor-object-survey.md
2026-03-30 00:19:01 +02:00

3 KiB

Editor/Helper Object Survey

This pass widened the renderer research beyond egg and NPC spawner objects and focused on editor/helper shapes that already carry useful classification data in the exported scene payload.

Evidence Base

  • The renderer already exports shapeDefinitions[*] entries with kind, family, dimensions, visibilityTags, traits, and the matching catalog entry.
  • The public catalogs already distinguish many non-gameplay helper families that are currently easy to miss in the UI.
  • Representative catalog anchors in Remorse include:
    • 0x005A, 0x005B, 0x005C, 0x005D, 0x0066-0x0069: invisible/editor wall objects
    • 0x01B8: camera
    • 0x0290, 0x0336: LIGHT_BRIDGE_*
    • 0x0251, 0x0318, 0x0337, 0x0361: placeholder cubes and placeholder UI/editor markers
    • 0x0108, 0x0113, 0x01B9, 0x01BA, 0x025F, 0x0260, 0x02F0, 0x0373, 0x0399, 0x03A1, 0x04C8: wallgun_shape_* helper cluster

What This Means For The Renderer

  • A lot of the useful information is already present without more reverse-engineering. The main problem was presentation, not raw data availability.
  • Editor/helper objects often carry meaningful mapNum, npcNum, quality, or nextItem values even when they are not DTABLE-backed NPC spawners. Those raw linkage values are worth exposing because they help separate placeholder geometry from logic markers.
  • Catalog names already identify several broad classes that deserve different handling in the UI:
    • invisible walls/editor walls
    • camera/helper markers
    • light bridge / forcefield / editor-authored bridge surfaces
    • placeholder cubes and placeholder UI markers
    • auto-derived helper shapes tied to specific USECODE families like WALLGUN

Implemented UI Enrichment

The tooltip now exposes generalized metadata for editor/helper objects instead of reserving extra detail almost entirely for NPC spawners:

  • Dimensions: shape dimensions from the exported shape definition
  • Tags: exported visibility tags such as editor, helper, egg, roof, and oob
  • Traits: exported rendering/collision traits such as occluding, translucent, solid, fixed, and nonzero animation type
  • Role hint: a cautious catalog-backed note for important helper families like invisible walls, cameras, light bridges, placeholders, WALLGUN helper shapes, 0x04D0 NPC spawners, and 0x024F monster eggs
  • Raw linkage: map, npc, quality, and next fields for editor/helper/egg objects so unresolved objects still expose their control data

Practical Next Targets

  • Add dedicated filters or list views for helper subfamilies such as invisible walls, camera markers, light bridges, and placeholder cubes.
  • Add shape-family frequency summaries so repeated helper markers can be audited across a map.
  • Decode more shape-specific field semantics for unresolved editor objects like 0x04B1, 0x0011, 0x04C9, 0x04CA, and 0x04E3.
  • Find the No Regret replacement for the Remorse 0x024F monster-egg workflow instead of assuming the same shape is reused.