Crusader_Decomp/docs/map_renderer/editor-object-survey.md
2026-04-01 17:40:52 +02:00

3.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 the still-unresolved editor objects, especially the remaining non-promoted invisible-wall, camera/helper, and music-controller families, and keep folding any new results back into the dedicated USECODE-link note.
  • Find the No Regret replacement for the Remorse 0x024F monster-egg workflow instead of assuming the same shape is reused.

0x04B1 now has a stable CMD_LINK -> TRIGGER.slot_20 viewer target, and 0x04E3 is already promoted as SKILLBOX::equip, so they no longer belong in the unresolved editor-object bucket here.