-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Approximately the second half of the {map_name}_HITID.BND file consists of lookup tables.
These tables are crucial for optimizing collision performance by quickly determining the room/cell an object is located in.
Reverse engineering the table generator is challenging. The game engine generates these tables through a series of function calls as outlined below:
mmCullCity::Init --> asRenderWeb::Load --> mmBoundTemplate::GetBoundTemplate -->
mmBoundTemplate::Load
(if (x_dim && y_dim && z_dim))
mmBoundTemplate::MakeTable
mmBoundTemplate::DoMakeTable
mmPolygon::Plot
mmPolygon::PlotTriangle
Vector3::Swap
swapf
mmPolygon::PlotScan
j_clamp
mmBoundTemplate::AddIndex
mmPolygon::MaxY
mmPolygon::CornersHeight
sqrtf_fast_0
mmPolygon::CheckCorner
mmPolygon::CheckCellXSide
mmPolygon::CheckCellZSideFor more context, see the pictures below.
Chicago without a collision table:
Chicago with a collision table:
Visual representation of the collision table in-game:
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed




