# Retail Source Blueprint Block: `0x8002EB54-0x80035630`

Generated by `python tools/orig/source_blueprints.py --materialize-all`.

## Summary
- block span: `0x8002EB54-0x80035630` size=`0x6ADC`
- anchors: `2`
- short gap packets: `1`
- block score: `903048`
- block function count: `35`
- ordered skeleton paths: `main/objanim.c`, `main/objhits.c`, `objHitReact.c`

## Ordered Skeleton
### `main/objanim.c`
- retail source: `objanim.c`
- action: `shrink-window`
- confidence: `medium`
- plan window: `0x8002EB54-0x8002F50C` size=`0x9B8` from=`suggested-window`
- current seed: `0x8002EB54-0x80030688` size=`0x1B34` functions=`13`
- debug target size: `0x3A8` fit=`seed-too-wide`
- xref coverage inside plan: `2/3`
- retail labels: `setBlendMove`
- why: Seed is wider than the debug split size; the best compact candidate is `0x8002EB54-0x8002F50C`.
- plan-window functions:
- `ObjAnim_SetBlendMove@0x8002EB54-0x8002ED18` size=`0x1C4`
- `Object_ObjAnimSetPrimaryBlendMove@0x8002ED18-0x8002ED6C` size=`0x54`
- `Object_ObjAnimSetSecondaryBlendMove@0x8002ED6C-0x8002EDC0` size=`0x54`
- `Object_ObjAnimAdvanceMove@0x8002EDC0-0x8002F20C` size=`0x44C`
- `Object_ObjAnimSetMoveProgress@0x8002F20C-0x8002F23C` size=`0x30`
- `Object_ObjAnimSetMove@0x8002F23C-0x8002F50C` size=`0x2D0`

### Gap: `objanim.c` -> `objHitReact.c`
- EN gap: `0x80030688-0x800353A4` size=`0x4D1C` functions=`21`
- resolved gap names: `1/1` ambiguous=`0` unresolved=`0`
- exact debug interval paths: `0`
- exact debug interval preview: none
- gap path hints:
- `objhits.c` status=`global-unique` paths=`main/objhits.c`
- EN gap functions:
- `ObjHits_CollectSkeletonHitsXZ@0x80030688-0x80030AEC` size=`0x464`
- `ObjHits_CollectSkeletonHits3D@0x80030AEC-0x80030EC8` size=`0x3DC`
- `ObjHits_CalcSkeletonResponseXZ@0x80030EC8-0x800313A8` size=`0x4E0`
- `ObjHits_CalcSkeletonResponse3D@0x800313A8-0x80031854` size=`0x4AC`
- `ObjHits_ProjectPointToTaperedCapsuleXZ@0x80031854-0x80031B30` size=`0x2DC`
- `ObjHits_ProjectPointToTaperedCapsule3D@0x80031B30-0x80031E2C` size=`0x2FC`
- `ObjHits_CalcTaperedCapsuleNormal@0x80031E2C-0x80032090` size=`0x264`
- `ObjHits_TestTaperedCapsuleXZ@0x80032090-0x800321A4` size=`0x114`
- `ObjHits_TestTaperedCapsule3D@0x800321A4-0x800322E8` size=`0x144`
- `ObjHits_SortSweepEntries@0x800322E8-0x800323D0` size=`0xE8`
- `ObjHits_TickPriorityHitCooldowns@0x800323D0-0x80032410` size=`0x40`
- `ObjHitbox_UpdateRotatedBounds@0x80032410-0x800325C0` size=`0x1B0`
- `ObjHits_CheckHitVolumes@0x800325C0-0x800333C8` size=`0xE08`
- `doNothing_800333C8@0x800333C8-0x800333CC` size=`0x4`
- `ObjHits_CheckObjectHitVolumes@0x800333CC-0x8003393C` size=`0x570`
- `ObjHits_RegisterActiveHitVolumeObject@0x8003393C-0x80033994` size=`0x58`
- `ObjHits_ApplyPairResponse@0x80033994-0x80033F84` size=`0x5F0`
- `ObjHits_DetectObjectPair@0x80033F84-0x80034454` size=`0x4D0`
- `ObjHits_CheckSkeletonPair@0x80034454-0x800348B0` size=`0x45C`
- `ObjHits_CheckTrackContact@0x800348B0-0x80034CDC` size=`0x42C`
- `ObjHits_Update@0x80034CDC-0x800353A4` size=`0x6C8`

### `objHitReact.c`
- retail source: `objHitReact.c`
- action: `corridor-packet`
- confidence: `medium`
- plan window: `0x800353A4-0x80035630` size=`0x28C` from=`current-seed`
- current seed: `0x800353A4-0x80035630` size=`0x28C` functions=`1`
- why: Retail seed is best treated as one packet inside a debug-side source corridor containing `objhits.c`, `objlib.c`, `objprint.c`, `objprint_dolphin.c`, `pi_dolphin.c`.
- plan-window functions:
- `objHitReact_update@0x800353A4-0x80035630` size=`0x28C`

## Recommended Next Steps
- Treat `main/objanim.c` as resize-first jobs before asserting final file boundaries.
- Walk the ordered gap-path hints in this block when sketching the first-pass source skeleton.
