QuakeServer.Signon (quake_server v0.1.0)

Copy Markdown View Source

The messages FTE sends a client after the level's model and sound lists and before the client begins (SV_SendClientPrespawnInfo, SVQW_Spawn_f): the static entities (makestatic), oldest first, then the static sounds (ambientsound), then each player slot's info keys.

[message | _] = QuakeServer.Signon.messages(server)

Each is a binary holding one server message:

  • a static entity: svc_spawnstatic (20), the index of its model in the server's model list in 16 bits, its frame, colormap (0) and skin as bytes, then for each axis its origin's coordinate and its angle
  • a static sound: svc_spawnstaticsound (29), its origin's three coordinates, the index of its sound in the server's sound list as a byte, the volume × 255 and the attenuation × 64 as bytes; a sound past index 255 is svcfte_spawnstaticsound2 (94) with a flags byte of 1 and the index in 16 bits after the coordinates. A sound not in the sound list is left out, as FTE's ambientsound leaves it.
  • a player slot's info: svc_updateuserinfo (40), the slot (the entity less one), the user id (the entity) in 32 bits, and the info string, \key\value for each key in order, with name as QuakeServer.Server.player_name/2 gives it

Coordinates and angles are written as the server's coords sets (QuakeServer.Builtins.Write): 32-bit floats and 65536ths of a turn in 16 bits, or eighths of a unit in 16 bits and 256ths of a turn in a byte.

Summary

Functions

The server's static entities, static sounds and player info, as messages in that order.

Functions

messages(server)

@spec messages(QuakeServer.Server.t()) :: [binary()]

The server's static entities, static sounds and player info, as messages in that order.