smell, remove gcfclient support, material fixes, cfpod parse fixes, refactoring
new los code
doh
*** empty log message ***
*** empty log message ***
*** empty log message ***
remove FLAG_CLIENT_SENT for good
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
- optimise visible_to - visible_to now only sends floor items when they might be visible - optimised remove for the map case - remove now clsoes containers that get removed from the floor - work around possible client bug by forcign an item flag update for cointainers - avoid superfluous floorbox resets
*** empty log message ***
reintroduce last_weight optimisation, clear TODO
see Changes
- remove all "obviously safe" uses of esrv_del_item.
*** empty log message ***
moved update_stats from the inner drop/put loop to the callers. and converted some old messages. also hard limited pick_up now.
implemented drop item limit and fixed small performance problem in is_in_shop()
update copyrights and other minor stuff to deliantra
be more careful
- clean up message system, combine all boxes into one. - suppress too long messages (we need a more robust solution to this problem). - get rid of INS_MAP_LOAD, leading to slightly cleaner/faster code and certainly one special case less. - insert objects manually at load time, this is both faster and also more correct, as loading a map is never supposed to trigger anything (and also for symmetry to the save code).
replace MAXSOCKBUF by MAXSOCKBUF-1, the real socket buffer size, and adjust it to 10239, the actual maximum gcfclient supports
welcome to fxix protocol version 3, with uniform handling over all resources
- upgrade crossfire trt to the GPL version 3 (hopefully correctly). - add a single file covered by the GNU Affero General Public License (which is not yet released, so I used the current draft, which is legally a bit wavy, but its likely better than nothing as it expresses direct intent by the authors, and we can upgrade as soon as it has been released). * this should ensure availability of source code for the server at least and hopefully also archetypes and maps even when modified versions are not being distributed, in accordance of section 13 of the agplv3.
more failsafe
likely fix the crash in LookAt
- improve observe - remove more cruft code - archetype loading almost works again, reloading probbaly still borked.
- remove slow and unneeded cruft code from map1. - decouple map display/stats update from ob (use pl->obsere instead)
update copyrights in socket/*.C
implement ex command support to quickly retrieve item descriptions
- fix ber encoding - reduce image checksum length to 6 bytes (from 16) - implement fx packet, which reduces face overhead to amortised 10/12 bytes per face instead of 21/32 bytes and allows an unlimited number of faces instead of 2**16.
- rewrote smooth face handling, as a side-effect, smoothing seems to work again and smooth faces can be reloaded. - the server now sends the full animation for an object the first time it is seen, this uses slightly more bandwidth initially, but avoids the flickering for objects change their face later.
- MAJOR CHANGE - you now need to use cfutil to install arches. - former bigfaces are broken in the server - bigfaces are no longer supported. at all. - use face numbers instead of pointers * saves lotsa space * saves lotsa indirections * saves lots(?) cpu cycles - completely rewrote face handling - faces can now be added at runtime - reload will add new faces - this does not apply to animations - use a hastable instead of binary search (faster) for faces - face caching is broken - facesets are gone - server always reports MAX_FACES to any client who asks
nano-cleanups
*** empty log message ***
- avoid floorbox updates when client has container open, this completely confused gcfclient, although completely valid by the protocol (and of course, cfplus didn't even notice it).
hell on earth, rewrote the container code - it really was a mess before - open/close events should now be very reliable. - make container an object_ptr, just to be on the safe side (the old code is known to crash, the new code should be reliable, but...). - its also smaller, much smaller/clearer in sourcecode size and a bit smaller in text segment size. also disable big worldmap again: is this still causing memleaks?
mroe cheks on disconnected socket
mark watchers as reentrant, some FABS => fabs
- fix crash bug - better fork & abort (untested)
emergency workaround
- added $cf::WAIT_FOR_TICK* - tuned map-scheduler and player-scheduler - added $op->inv_recursive - added objects_size/objects($index) and actives_size/actives($index) for access to the object and actives vector. - more robust player loader - removed _perl_data attribute support - SIGINT/TERM/HUP are now safe as they are handled synchronously. - replaced LOOK_OBJ by client_visible - cleanups
- move most last_* values into socket, where they belong - this actually saved a lot of space in the text segment, which might mean less complicated pointer accesses, because the data is no where it belongs, mostly.
added some copyrights
- made state a per-client variable (that does not magically make state a per-client thing!) - rename player->socket to player->ns. its not a good name for "client", but it is an historical artifact, and better than "socket".
- minor cleanups - minor optimisations (in_player vs. is_player_inv) - added P_PLAYER map flag - some (dead) concept code
some source simplification
goofing around in vain, trying to find a generalisation for esrv*item
- hide floorbox implementation details - use meaning (hopefully) names
just reformats
the rename for sanity campaign hits you died - renamed stuff - partially updated copyrights - some cleanups
streamlined packet processing a bit, experimentally enabled more immediate paclets
fix bug
- implement c++ interface to Event->io watchers - cut number of write()'s the server does in half
- rewrote most of the socket loop code - moved connection accept into tcp.ext - no evil socket copying anymore, needs more cleanups
moar\! rewrite\!
rewrite phase one finished
moar rewrite
(intermediate check-in for recoverability)
moar rewrite
(intermediate check-in for recoverability)
- further cleanup and rewrite - fix a potential crash in "lock" and "mark" packets
continued simplifying network code, partially removed support for sc protocol 1026
* nuke op->contr when players log out, to avoid dereferencing them later :( * also rename free to destroy * do not create weird messages when people examine pseudo inventory objects
added many accessors and mutators to struct player, including *title* and (hint, hint) *own_title*
mapstruct => maptile removed many ytypedefs in favor of structure tags
indent
- improve assign to prepend "..." - make more use of assign - implement op->debug_desc() and make some more use of it
indent
THIS CODE WILL NOT COMPILE use the STABLE tag instead. - major changes in object lifetime and memory management - replaced manual refcounting by shstr class - removed quest system - many optimisations - major changes
expand initial tabs to spaces
nuke transports
Made server compile with C++. Removed cfanim plugin and crossedit. C++ here we come.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.