Bounded vertical route partition / streaming for handcrafted spiral climb maps (Only Up / Only Climb). Not World Partition, not Level Instances as core arch. - Z-cell segmentation + optional XY subcells, editor builder + commandlet - NonDestructive visibility backend + streaming-level backend - Offline HLOD proxies: MergedMesh / SimplifiedProxy (ProxyLOD) - Universal Level Instance + Packed Level Actor + HISM support (flatten+merge) - Vertical-aware runtime streamer (full/preload/HLOD/unload, hysteresis, velocity prediction, fall-risk), WP-style debug viz + vp.* console - Safe-by-default: only static decor streams; sky/lights/gameplay stay persistent Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
708 B
C++
33 lines
708 B
C++
// Copyright IHY. Vertical Partition Streaming plugin.
|
|
#include "VerticalPartitionDescriptor.h"
|
|
|
|
int32 UVerticalPartitionDescriptor::FindCellIndex(const FVerticalCellId& Id) const
|
|
{
|
|
for (int32 i = 0; i < Cells.Num(); ++i)
|
|
{
|
|
if (Cells[i].CellId == Id)
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return INDEX_NONE;
|
|
}
|
|
|
|
const FVerticalCellDescriptor* UVerticalPartitionDescriptor::FindCell(const FVerticalCellId& Id) const
|
|
{
|
|
const int32 Index = FindCellIndex(Id);
|
|
return Cells.IsValidIndex(Index) ? &Cells[Index] : nullptr;
|
|
}
|
|
|
|
bool UVerticalPartitionDescriptor::HasFullPackages() const
|
|
{
|
|
for (const FVerticalCellDescriptor& Cell : Cells)
|
|
{
|
|
if (Cell.FullCellPackage.IsValid())
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|