+/*
+DPPROTOCOL_VERSION3
+server updates entities according to some (unmentioned) scheme.
+
+a frame consists of all visible entities, some of which are up to date,
+often some are not up to date.
+
+these entities are stored in a range (firstentity/endentity) of structs in the
+entitydata[] buffer.
+
+to make a commit the server performs these steps:
+1. duplicate oldest frame in database (this is the baseline) as new frame, and
+ write frame numbers (oldest frame's number, new frame's number) and eye
+ location to network packet (eye location is obsolete and will be removed in
+ future revisions)
+2. write an entity change to packet and modify new frame accordingly
+ (this repeats until packet is sufficiently full or new frame is complete)
+3. write terminator (0xFFFF) to network packet
+ (FIXME: this terminator value conflicts with MAX_EDICTS 32768...)
+
+to read a commit the client performs these steps:
+1. reads frame numbers from packet and duplicates baseline frame as new frame,
+ also reads eye location but does nothing with it (obsolete).
+2. delete frames older than the baseline which was used
+3. read entity changes from packet until terminator (0xFFFF) is encountered,
+ each change is applied to entity frame.
+4. sends ack framenumber to server as part of input packet
+
+if server receives ack message in put packet it performs these steps:
+1. remove all older frames from database.
+*/
+