- add MAX_NET_EDICTS and MAX_NET_EDICTS_MASK defines, which are 512
and 511 respectively
- change baselines to access the array directly, rather than through
the entity's "data" field
- cleanup SV_ReliableSVC_Emit
- add entity remapping. the entity number used internally in the
server no longer matches the number sent to the client, and it
releases the mapping after 10 seconds of inuse, so there's no
"512 entity limit" anymore. Still the MAX_EDICTS limit though,
which is currently 768, but it can probably be defined to something
much higher without any trouble.
- when getting a new connection request and searching for matching
connections, treat cs_zombie the same as cs_free (ignore it), so
that we don't attempt to drop it twice.
- only parse A2A_ACK packets missing the connectionless prefix if the
packet is 1 or 2 bytes long. if longer it gets treated as a normal
sequenced packet
The packetloss on localhost bug (except during connect) is now gone. :)
we ever giet a NET_ERROR
- fix the baselines so all entities have the QSG2 extensions (alpha,
scale, etc) inited, instead of just the entities that the map
started with
- make the server not include empty deltas in a
svc_deltapacketentities for updated entities
- change a silly for (; foo;) to while (foo)
- fix handling of sv_maxrate > 10000
- make SV_ExtractFromUserInfo only update netchan.rate when the rate
is changed
- make SV_ExtractFromUserInfo use if (*val) instead of if
(strlen(val))
- move clc_t into net_clc.h from net_protocol.h
- split packet processing stuff from net.h into net_packet.h
- add a is_server arg to Log_{Incoming,Outgoing}_Packet, so libs/net is
oblivious to if we're running a server or not (except with the arg,
obviously)
- remove the long obsolete (even in original quake) svc_spawnbinary
stuff
- make nq use QF/net_svc.h
- make nq link to libQFnet too
- make qw's cl_parse.c use net_svc_qw_any_t instead of net_svc_any_t
errors can be handled
- add a MSG_ReadBlock and MSG_WriteBlock, which write arbitrary
- add a MSG_PeekByte, although I never actually used it..
- canonicalize the svc's, so that if qw and nq have a svc with the
same name but different contents, they get different names
- add all the nq stuff to svc_t, so it has both nq and qw. fun enum
that :)
- fix all the sizebuf_t usages so they init all the fields properly
- move qw's net_svc.c, net_clc.c, net_packetlog.c, and msg_ucmd.c
(renamed to net_ucmd.c) into libs/net
- move headers for the above in include/QF
- convert remaining clc bits to NET_CLC (I think I got them all)
- I split net_svc into net_svc_common and net_svc_qw too, in
preperation for adding nq
- moved movevars_t into "QF/net_svc_qw.h", from pmove.h
- made the CL_Parse* functions in qw get the net_svc_*_t as a param,
instead of parsing themselves
- use a jumptable for CL_Parse*
- probably other machinates I've forgotten
- and of course, probably added numerous bugs :)
two conflicting developement tracks to better co-exist. To work on this brance,
use "cvs up -r net_svc" and then update and commit as normal: committing to
the branche will be automatic once the branch is checked out.
Again: cvs up -r net_svc
code cleanups and general performance work to be developed in relative peace.
While cleaning up the networking code /is/ important, fixing QF's perfomance
issues is of much higher priority.
treat Forge like an entirely new program, and not as a port. I'll still
be using many of the ideas from QuakeEd (and from my old Forge work),
but there's no promise that it'll be a duplicate, or even similar.
expressions (ie, just a def) don't generated wasted assignments and clean up
switch's debug info so you get the switch line rather than the line for the
closing }