Network Versioning System
=========================

Part II - CLC Versioning

CLC Versioning
--------------
Client messages to the server are a single one-way transaction, hence aren't a
problem as the server knows which version the client runs and therefore only
reads the message data corresponding to the NVS version (e.g. expects no extra
data from old clients).
Hard-coded if-statements on client and server side are sufficient and work well.
The checked NVS version is CCLC (cvar on client, client structure on server).

Example:
Client: if (nvs_cclc_version.value >= n.nn)
Server: if (host_client->nvs_cclc >= n.nn)


Test: Precise Aiming (clc_move)
-------------------------------
Instead of sending three bytes for the angles, the client sends three floats
when he is allowed by the server. This will be implemented from NVS version 1.0
on.
You can check out the difference with NVS_MAX_CLIENT 0.00 and NVS_MAX_CLIENT -1
(don't forgot to reconnect or restart the level).


Known Problems
--------------
none


File Changes
------------
Redone CLC versioning example: precise aiming (search for NVS CLC)

* 2000-05-01:
CL_INPUT.C
  added CLC versioning example for precise aiming in CL_SendMove()
SV_USER.C
  added CLC versioning example for precise aiming in SV_ReadClientMove()
