QuakeServer.World.Hitboxes (quake_server v0.1.0)

Copy Markdown View Source

A move against a studio model's hitboxes, posed as FTE's server poses it (HLMDL_Trace): a hitbox struck gives the trace its group as surface_id, its bone (from 1) as bone_id, its number (from 1) as brush_id and its face (from 1, 0 when the move started inside it) as brush_face.

pose = %{sequence: 3, time: 0.4, base_sequence: 0, base_bones: 0}
QuakeServer.World.Hitboxes.trace(studio, pose, axes, from, to, mins, maxs, mask)

The pose is the entity's frame (the sequence, bit 0x8000 ignored), frame1time (seconds into it), baseframe and basebone (the first basebone bones take baseframe instead); bone controllers sit at 0 and a sequence's blends are mixed evenly. from and to are relative to the entity's origin; axes are its turned forward, left and up rows, or nil when it is not turned.

The trace is {:ok, trace}, or :unposed for a sequence of no frames or one whose even mix needs a blend past the second, which Cauldron3D.Formats.Studio.locals/4 does not read.

Summary

Functions

The move from from to to of a box mins..maxs against studio's hitboxes in pose.

Types

pose()

@type pose() :: %{
  sequence: integer(),
  time: float(),
  base_sequence: integer(),
  base_bones: integer()
}

Functions

trace(studio, pose, axes, from, to, mins, maxs, mask)

The move from from to to of a box mins..maxs against studio's hitboxes in pose.